#coding:utf-8 import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings")
'''Django 版本大於等於1.7的時候,須要加上下面兩句
import django
django.setup()
不然會拋出錯誤 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.'''import djangoif django.VERSION >= (1, 7):#自動判斷版本 django.setup()from keywork.models import DevDataimport xlrd #excel讀工具data= xlrd.open_workbook('cs.xls') #打開文件table = data.sheet_by_index(0) #獲取工做表nrows = table.nrows #行數ncols = table.ncols #列數colnames = table.row_values(0)
WorkList = []
x = y = z = 0for i in range(1,nrows):
row = table.row_values(i) #獲取每行值
for j in range(0,ncols): if type(row[j]) == float: #若是值爲float則轉換爲int,避免出現1輸出爲1.0的狀況
row[j] = int(row[j]) if row: #查看行值是否爲空
if DevData.objects.filter(serv_id = row[0],user_flag=row[15]).exists():#判斷該行值是否在數據庫中重複
x = x + 1 #重複值計數
else:
y = y + 1 #非重複計數
WorkList.append(DevData(serv_id=row[0], serv_state_name=row[1], acc_nbr=row[2], user_name=row[3], acct_code=row[4], product_id=row[5],
mkt_chnl_name=row[6], mkt_chnl_id=row[7],mkt_region_name=row[8], mkt_region_id=row[9],mkt_grid_name=row[10],
sale_man=row[11],sale_outlets_cd1_name=row[12], completed_time=row[13],remove_data=row[14], user_flag=row[15],
pro_flag=row[16], service_offer_id=row[17],service_offer_name=row[18], finish_time=row[19],staff_name=row[20],
staff_code=row[21],org_name=row[22],prod_offer_name=row[23],day_id=row[24],
)
) else:
z = z + 1 #空行值計數DevData.objects.bulk_create(WorkList)print '數據導入成功,導入'+str(x)+'條,重複'+str(y)+'條,有'+str(z)+'行爲空!'
問啊APP,程序員答題神器,解決你全部的技術難題, (上問啊APP 瞭解更多) http://t.cn/R4vE2d7 下載註冊送5元 快去下載註冊吧!
問啊-定製化IT教育平臺,牛人一對一服務,有問必答,開發編程社交頭條 官方網站:www.wenaaa.com 下載問啊APP,參與官方懸賞,賺百元現金。
QQ羣290551701 彙集不少互聯網精英,技術總監,架構師,項目經理!開源技術研究,歡迎業內人士,大牛及新手有志於從事IT行業人員進入!
http://cxy.liuzhihengseo.com/497.htmlhtml