利用xlrd實現xls檔案匯入資料

2021-07-10 19:50:11 字數 1899 閱讀 5810

#

coding:utf-8

import

os os.environ.setdefault(

"django_settings_module

", "

www.settings")

'''django 版本大於等於1.7的時候,需要加上下面兩句

import django

django.setup()

'''import

django

if django.version >= (1, 7):#

自動判斷版本

django.setup()

from keywork.models import

devdata

import 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 =0

for 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 #

非重複計數

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)+'

行為空!

'

qq群290551701 聚集很多網際網路精英,技術總監,架構師,專案經理!開源技術研究,歡迎業內人士,大牛及新手有志於從事it行業人員進入!

xlrd批量讀取xls格式excel檔案資料。

要提取所有excel檔案裡的藍色標記的資料到一張表裡 效果如下 主要採用了xlrd獲取xls檔案的單元格資料。後面用pandas存放資料並轉成了excel檔案。中間又加了一點多執行緒的東西。其實呢這個例子只有5個檔案,用不用多執行緒沒什麼影響.速度都很快.0.1秒就可以完成了。最近一直在一點點地學習...

Python之xlrd模組讀取xls檔案與報錯解決

pip3 install xlrd sheet編號從0開始 rows,colnum編號均從0開始 合併的單元格僅返回第一格內容 sheets只能被呼叫一次,可獲取所有sheet取idx 無論 內資料型別是int還是str,純數字內容會返回float import xlrd file name lis...

利用xlrd模組實現Python讀取Excel文件

coding cp936 python讀取excel import xlrd defmain xls xlrd.open workbook d 11.xls try mysheet xls.sheet by name sheet1 找到名為sheet1的工作表。區分大小寫 except print ...