Python拆分Excel工作簿或工作表為多個文件的高效方法
引言
在日常工作中,我們經(jīng)常需要處理包含大量數(shù)據(jù)的Excel文件。這些文件可能包含不同的表格、圖表和工作表,使得數(shù)據(jù)管理和分析變得復(fù)雜。為了提高效率和準(zhǔn)確性,我們可以將一個Excel文件或其中某一個工作表按需求拆分為多個文件,以便更好地組織和管理數(shù)據(jù)。本文將提供以下兩個示例介紹如何通過Python高效地拆分Excel工作簿或工作表。
本文中需要用到 Spire.XLS for Python庫。該庫支持多種Excel文檔處理、轉(zhuǎn)換等操作,可以直接使用以下pip命令安裝:(也可以 下載產(chǎn)品包后再從本地路徑安裝)
pip install Spire.XLS
將一個Excel工作簿按工作表拆分為多個文件
拆分Excel工作簿是通過復(fù)制其中的工作表,然后再粘貼到新建的Excel文檔中實現(xiàn)的。具體操作如下:
- 使用
Workbook.LoadFromFile()
方法加載 Excel 文件。 - 遍歷 Excel 文件中的所有工作表。
- 為每個工作表新建一個Excel工作簿,并刪除其中的默認(rèn)工作表。
- 使用
Workbook.Worksheets.AddCopy()
方法將工作表復(fù)制到新建Excel文檔中。 - 使用
Workbook.SaveToFile()
方法保存每一個新建Excel文檔。
Python代碼:
from spire.xls import * from spire.xls.common import * # 加載Excel文件 workbook = Workbook() workbook.LoadFromFile("庫存表.xlsx") # 遍歷該文件中的所有工作表 for worksheet in workbook.Worksheets: # 創(chuàng)建新Excel工作簿 newWorkbook = Workbook() # 刪除默認(rèn)工作表 newWorkbook.Worksheets.Clear() # 將工作表復(fù)制到新工作簿中 newWorkbook.Worksheets.AddCopy(worksheet) # 保存新工作簿 newWorkbook.SaveToFile("拆分\\" + worksheet.Name + ".xlsx", FileFormat.Version2016) workbook.Dispose()
將一個Excel工作表按指定范圍拆分為多個文件
要將一個工作表中的數(shù)據(jù)按需求拆分為不同的文檔,可以復(fù)制原始工作表中指定單元格的數(shù)據(jù)到新建Excel文檔的工作表中。具體操作如下:
- 使用
Workbook.LoadFromFile()
方法加載 Excel 文件。 - 獲取指定工作表,然后使用
Workheet.Range
屬性獲取標(biāo)題行和指定的單元格區(qū)域。 - 創(chuàng)建新Excel工作簿并獲取其第一個工作表。
- 使用
Worksheet.Copy(sourceRange, destRange)
方法將標(biāo)題行和指定的單元格區(qū)域復(fù)制到新Excel工作簿的第一個工作表中。 - 使用
Workbook.SaveToFile()
方法將新工作簿保存到 Excel 文件中。 - 重復(fù)上述步驟,將標(biāo)題行和其他指定的單元格區(qū)域復(fù)制到新Excel工作簿中。
Python代碼:
from spire.xls import * from spire.xls.common import * # 加載Excel文件 workbook = Workbook() workbook.LoadFromFile("庫存表.xlsx") # 獲取第一張工作表 sheet = workbook.Worksheets[0] # 獲取標(biāo)題行 headerRow = sheet.Range[1, 1, 1, 8] # 獲取兩個單元格區(qū)域 range1 = sheet.Range[2, 1, 4, sheet.LastColumn] range2 = sheet.Range[5, 1, sheet.LastRow, sheet.LastColumn] # 創(chuàng)建新工作簿并獲取其第一張工作表 newBook1 = Workbook() newSheet1 = newBook1.Worksheets[0] # 將標(biāo)題行和指定的單元格區(qū)域復(fù)制到新工作表中 sheet.Copy(headerRow, newSheet1.Range[1, 1]) sheet.Copy(range1, newSheet1.Range[2, 1]) # 復(fù)制列寬 for i in range(sheet.Columns.Count): newSheet1.SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1)) # 保存新Excel工作簿 newBook1.SaveToFile("拆分文檔1.xlsx", ExcelVersion.Version2016) # 創(chuàng)建另一個新工作簿并獲取其第一張工作表 newBook2 = Workbook() newSheet2 = newBook2.Worksheets[0] # 將標(biāo)題行和指定的單元格區(qū)域復(fù)制到新工作表中 sheet.Copy(headerRow, newSheet2.Range[1, 1]) sheet.Copy(range2, newSheet2.Range[2, 1]) # 復(fù)制列寬 for i in range(sheet.Columns.Count): newSheet2.SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1)) # 保存新Excel工作簿 newBook2.SaveToFile("拆分文檔2.xlsx", ExcelVersion.Version2016)
通過以上兩個示例能輕松實現(xiàn)使用Python來拆分Excel工作簿或工作表,從而幫助節(jié)省大量的時間和精力。
到此這篇關(guān)于Python拆分Excel工作簿或工作表為多個文件的高效方法的文章就介紹到這了,更多相關(guān)Python拆分Excel工作表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python實現(xiàn)簡單區(qū)塊鏈結(jié)構(gòu)
區(qū)塊鏈?zhǔn)且环N數(shù)據(jù)結(jié)構(gòu),也是一個分布式數(shù)據(jù)庫。這篇文章主要介紹了python實現(xiàn)簡單區(qū)塊鏈結(jié)構(gòu)的相關(guān)知識,需要的朋友可以參考下2021-04-04Python+Django搭建自己的blog網(wǎng)站
一直有種想要搭建自己博客系統(tǒng)打沖動,可惜需要前端知識較多,而且還要安裝一系列軟件并配置(windows平臺),后來偶然發(fā)現(xiàn)了Django這個神器,恰巧剛學(xué)過python,于是就又裝了ubuntu(安裝各種軟件配置都方便),折騰了半天,終于搭建起來自己的第一個簡易博客。2018-03-03