Python如何對多個sheet表進行整合?
說明
1、xlwt模組是非追加寫入.xls模組,所以要一次性寫入for迴圈和列表,這樣就沒有追加和非追加的說法。
2、將Excel表合併,將每一個Excel表作為行,即行合併,換個想法,將Excel表中的標籤作為列,可以進行列合併,即將不同檔案中相同標籤組成的不同標籤合併,可以先將不同檔案中相同的標籤合併,不同檔案中相同的標籤組成一個列表,然後將前面組成的不同標籤合併,就可以得到所有Excel檔案的內容。
例項
#匯入xlrd和xlwt模組 #xlrd模組是讀取.xls的Excel檔案的模組,xlwt模組是以非追加的方式寫.xls的Excel檔案的模組 import xlrd,xlwt #匯入要讀的檔案的路徑 a=["C:/Users/Desktop/m1.xls","C:/Users/Desktop/m2.xls"] #定義要寫的檔案的路徑 b="C:/Users/Desktop/m3.xls" #定義函式,判斷開啟檔案是否會發生異常 def open(fileaddress): try: #透過xlrd模組的open_workbook()方法,開啟一個Excel檔案,定義變數fo為檔案控制程式碼 fo=xlrd.open_workbook(fileaddress) return fo except Exception as e: print("error!"+str(e)) #定義函式,得到某一個Excel檔案下某一個標籤的行數 def getrows(fo,num): table=fo.sheets()[num] #sheets()函式為xlrd模組自帶函式,能以列表的形式返回該Excel檔案的標籤 n=table.nrows #nrows為xlrd模組自帶函式,透過某一個標籤呼叫,可得到該標籤的行數 return n """ 定義函式,可透過Excel檔案路徑和標籤的序列編號得到 任意Excel檔案任意標籤的內容,且以列表的形式返回 """ def getsheetcontents(fileaddress,num): avalue=[] fo=open(fileaddress) table=fo.sheets()[num] n=table.nrows for i in range(0,n): """ row_values()函式為xlrd模組自帶函式,透過某一個標籤呼叫, 可得到該標籤的行資料,且這些行資料以列表形式返回,標籤中 一列為一個列表的元素 """ rdate=table.row_values(i) avalue.append(rdate) return avalue svalue=[] k=[] #透過for迴圈得到所有Excel檔案的標籤數,且以列表的形式返回 for i in a: fo=open(i) k.append(len(fo.sheets())) #對這些標籤數進行升序排序 k.sort() #透過for迴圈把這些Excel檔案中不同標籤的所有內容放在列表svalue中 for i in range(0,k[len(k)-1]): #透過for迴圈把不同Excel檔案的同一個標籤放在列表bvalue中 bvalue=[] for j in a: print("正在讀取"+str(j)+"的第"+str(i)+"個標籤") bvalue.append(getsheetcontents(j,i)) svalue.append(bvalue) #svalue裡面就是所有Excel檔案的內容 #透過xlwt模組的Workbook()建立一個.xls檔案,定義一個變數fw為檔案控制程式碼 fw=xlwt.Workbook() line=0 #add_sheet()函式為xlwt模組自帶函式,可得到一個自定義標籤 #定義變數ws為標籤控制程式碼 ws=fw.add_sheet("sheet1") """ 透過for迴圈遍歷svalue列表,把最終得到的 某個標籤某個檔案某行某列的資料寫入新標籤中 """ for i in range(0,len(svalue)): for j in range(0,len(svalue[i])): for m in range(0,len(svalue[i][j])): for n in range(0,len(svalue[i][j][m])): ws.write(line,n,svalue[i][j][m][n]) #透過line可得到不斷增加的行數 line+=1 print("合併完成") #save()函式為xlwt自帶函式,將合併好的Excel檔案儲存到某個路徑下 fw.save(b) #xlrd模組和xlwt模組都沒有close()函式,即用這兩個模組開啟檔案不用關閉檔案
以上就是Python對多個sheet表進行整合的方法,希望對大家有所幫助。更多Python學習指路:
本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2618/viewspace-2829786/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多個報表匯出到一個 excel 的多 sheet 頁Excel
- Python合併多個Excel檔案中的指定sheetPythonExcel
- 多個excel檔案合併到一個檔案中的多個sheet表中Excel
- 讀取excel某表的sheet1的前5行,寫入的第二個表的sheet1的前5行Excel
- 如何在Python中對dicts列表進行排序Python排序
- Python如何對浮點數進行取整操作?Python
- Python對字典進行排序Python排序
- Axios 作弊表(Cheat Sheet)iOS
- python進階(9)多執行緒Python執行緒
- 如何爬取 python 進行多執行緒跑資料的內容Python執行緒
- python如何對pyqt5的窗體進行設定?PythonQT
- 如何利用python對HTTP代理進行自動化維護?PythonHTTP
- python-進階教程-對切片進行命名Python
- JMeter 如何與 MySQL 進行整合測試JMeterMySql
- 在多資料來源中對部分資料表使用shardingsphere進行分庫分表
- python 對字典的值進行排序Python排序
- python可以對excel進行那些操作PythonExcel
- 用Pandas讀寫Excel檔案-輸出單sheet和多sheetExcel
- MyBatis表關聯 一對多 多對一 多對多MyBatis
- 如何對Wormhole進行連線Worm
- 如何使用Python、Transformers和scikit-learn對文字進行分類?PythonORM
- 報表如何實現對資料列進行排名分析?
- easyexcel多sheet多執行緒匯入示例,獲取所以執行緒執行結果後返回Excel執行緒
- 利用Arcpy和Geopandas進行多規比對
- Python對Hadoop資料進行讀寫PythonHadoop
- 單執行緒的JS如何實現多個互動同時進行執行緒JS
- EasyPoi 多sheet匯出功能實現
- imtoken中如何進行EOS對映
- 如何快速對影像進行分幅?
- 如何對爬蟲程式進行配置爬蟲
- 關於EasyExcel的資料匯入和單sheet和多sheet匯出Excel
- java stream()流對兩個集合進行比對Java
- web 端如何像 excel 裡的多 sheet 方式呈現資料WebExcel
- 如何使用lerna進行多包(package)管理Package
- blender python api 使用指令碼對一個靜幀 進行全方位渲染PythonAPI指令碼
- 一個命令對文字進行高效排序排序
- 如何用Python進行資料分析?Python
- Python如何進行陣列去重?Python陣列