Python拆分Excel工作簿或工作表為多個文件的高效方法
引言
在日常工作中,我們經(jīng)常需要處理包含大量數(shù)據(jù)的Excel文件。這些文件可能包含不同的表格、圖表和工作表,使得數(shù)據(jù)管理和分析變得復雜。為了提高效率和準確性,我們可以將一個Excel文件或其中某一個工作表按需求拆分為多個文件,以便更好地組織和管理數(shù)據(jù)。本文將提供以下兩個示例介紹如何通過Python高效地拆分Excel工作簿或工作表。
本文中需要用到 Spire.XLS for Python庫。該庫支持多種Excel文檔處理、轉換等操作,可以直接使用以下pip命令安裝:(也可以 下載產(chǎn)品包后再從本地路徑安裝)
pip install Spire.XLS
將一個Excel工作簿按工作表拆分為多個文件
拆分Excel工作簿是通過復制其中的工作表,然后再粘貼到新建的Excel文檔中實現(xiàn)的。具體操作如下:
- 使用
Workbook.LoadFromFile()方法加載 Excel 文件。 - 遍歷 Excel 文件中的所有工作表。
- 為每個工作表新建一個Excel工作簿,并刪除其中的默認工作表。
- 使用
Workbook.Worksheets.AddCopy()方法將工作表復制到新建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()
# 刪除默認工作表
newWorkbook.Worksheets.Clear()
# 將工作表復制到新工作簿中
newWorkbook.Worksheets.AddCopy(worksheet)
# 保存新工作簿
newWorkbook.SaveToFile("拆分\\" + worksheet.Name + ".xlsx", FileFormat.Version2016)
workbook.Dispose()

將一個Excel工作表按指定范圍拆分為多個文件
要將一個工作表中的數(shù)據(jù)按需求拆分為不同的文檔,可以復制原始工作表中指定單元格的數(shù)據(jù)到新建Excel文檔的工作表中。具體操作如下:
- 使用
Workbook.LoadFromFile()方法加載 Excel 文件。 - 獲取指定工作表,然后使用
Workheet.Range屬性獲取標題行和指定的單元格區(qū)域。 - 創(chuàng)建新Excel工作簿并獲取其第一個工作表。
- 使用
Worksheet.Copy(sourceRange, destRange)方法將標題行和指定的單元格區(qū)域復制到新Excel工作簿的第一個工作表中。 - 使用
Workbook.SaveToFile()方法將新工作簿保存到 Excel 文件中。 - 重復上述步驟,將標題行和其他指定的單元格區(qū)域復制到新Excel工作簿中。
Python代碼:
from spire.xls import *
from spire.xls.common import *
# 加載Excel文件
workbook = Workbook()
workbook.LoadFromFile("庫存表.xlsx")
# 獲取第一張工作表
sheet = workbook.Worksheets[0]
# 獲取標題行
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]
# 將標題行和指定的單元格區(qū)域復制到新工作表中
sheet.Copy(headerRow, newSheet1.Range[1, 1])
sheet.Copy(range1, newSheet1.Range[2, 1])
# 復制列寬
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]
# 將標題行和指定的單元格區(qū)域復制到新工作表中
sheet.Copy(headerRow, newSheet2.Range[1, 1])
sheet.Copy(range2, newSheet2.Range[2, 1])
# 復制列寬
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é)省大量的時間和精力。
到此這篇關于Python拆分Excel工作簿或工作表為多個文件的高效方法的文章就介紹到這了,更多相關Python拆分Excel工作表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python sklearn包——混淆矩陣、分類報告等自動生成方式
今天小編就為大家分享一篇python sklearn包——混淆矩陣、分類報告等自動生成方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Pytorch?和?Tensorflow?v1?兼容的環(huán)境搭建方法
這篇文章主要介紹了搭建Pytorch?和?Tensorflow?v1?兼容的環(huán)境,本文是小編經(jīng)過多次實踐得到的環(huán)境配置教程,給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11
解決pytorch?model代碼內(nèi)tensor?device不一致的問題
這篇文章主要介紹了pytorch?model代碼內(nèi)tensor?device不一致的問題,本文給大家分享完美解決方案,對pytorch?tensor?device不一致問題解決方案感興趣的朋友跟隨小編一起看看吧2023-07-07
Django 如何從request中獲取前端數(shù)據(jù)
這篇文章主要介紹了Django從request中獲取前端數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python腳本實現(xiàn)將excel表格數(shù)據(jù)拆分成兩個文件
這篇文章主要為大家詳細介紹了如何用python腳本把一個表格有4萬多條數(shù)據(jù)分為兩個文件表,每個2萬條數(shù)據(jù),文中的示例代碼講解詳細,有需要的小伙伴可以了解下2025-04-04

