Python實(shí)現(xiàn)讀取并寫入Excel文件過(guò)程解析
需求是有兩個(gè)Excel文件:1.xlsx,2.xlsx,比較2.xlsx中的A,B列和1.xlsx中的A,B列;查找1.xlsx中存在,2.xlsx中不存在的行數(shù)據(jù),輸出到result.xlsx文件中
1.xlsx內(nèi)容如下
2.xlsx內(nèi)容如下
上代碼
# coding=utf-8import xlrdimport xlwt# 打開(kāi)文件#data = xlrd.open_workbook(’./附件7:溶洞鉆孔、埋管、注漿.xlsx’)# 查看工作表#data.sheet_names()#print('sheets:' + str(data.sheet_names()))# 通過(guò)文件名獲得工作表,獲取工作表1#table = data.sheet_by_name(’20200404’)# 打印data.sheet_names()可發(fā)現(xiàn),返回的值為一個(gè)列表,通過(guò)對(duì)列表索引操作獲得工作表1# table = data.sheet_by_index(0)# 獲取行數(shù)和列數(shù)# 行數(shù):table.nrows# 列數(shù):table.ncols#print('總行數(shù):' + str(table.nrows))#print('總列數(shù):' + str(table.ncols))# 獲取整行的值 和整列的值,返回的結(jié)果為數(shù)組# 整行值:table.row_values(start,end)# 整列值:table.col_values(start,end)# 參數(shù) start 為從第幾個(gè)開(kāi)始打印,# end為打印到那個(gè)位置結(jié)束,默認(rèn)為none#print('整行值:' + str(table.row_values(0)))#print('整列值:' + str(table.col_values(1)))# 獲取某個(gè)單元格的值,例如獲取B3單元格值#cel_B3 = table.cell(3,2).value#print('第三行第二列的值:' + cel_B3)def read_xlrd(excelFile,tablename): data = xlrd.open_workbook(excelFile) #table = data.sheet_by_index(0) table = data.sheet_by_name(tablename) print('總行數(shù):' + str(table.nrows)) print('總列數(shù):' + str(table.ncols)) dataFile = [] for rowNum in range(table.nrows): # if 去掉表頭 if rowNum > 0: dataFile.append(table.row_values(rowNum)) return dataFile workbook = xlwt.Workbook(encoding = ’ascii’)worksheet = workbook.add_sheet(’sheet1’)def writeLine(row ,line): col=0 while col <len(line): worksheet.write(row,col, line[col]) col+=1filename1=’./附件7:溶洞鉆孔、埋管、注漿.xlsx’ data1=read_xlrd(filename1,’20200404’)filename2=’./設(shè)計(jì)之都溶洞注漿臺(tái)賬.xlsx’ data2=read_xlrd(filename2,’Sheet1’)data=[]for row in data1[4:]: #print(row[0],row[1]) data.append([row[0],row[1]])#print(data)result=[]i=0for row in data2[1:]: buf=[row[1],row[2]] if buf not in data: print(row,’不存在’) writeLine(i, row) i+=1workbook.save(’result.xlsx’)
之后生成結(jié)果result.xlsx文件
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)2. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析3. python tkinter實(shí)現(xiàn)下載進(jìn)度條及抖音視頻去水印原理4. ASP.NET MVC使用正則表達(dá)式驗(yàn)證手機(jī)號(hào)碼5. 一文搞懂 parseInt()函數(shù)異常行為6. Python 有可能刪除 GIL 嗎?7. Python使用sftp實(shí)現(xiàn)上傳和下載功能8. python捕獲警告的三種方法9. python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法10. Python基于百度AI實(shí)現(xiàn)抓取表情包
