使用Python實現(xiàn)將數(shù)據(jù)寫入Excel工作表
在數(shù)據(jù)處理和報告生成等工作中,Excel 表格是一種常見且廣泛使用的工具。然而,手動將大量數(shù)據(jù)輸入到 Excel 表格中既費時又容易出錯。為了提高效率并減少錯誤,使用 Python 編程語言來自動化數(shù)據(jù)寫入 Excel 表格是一個明智的選擇。Python 作為一種簡單易學(xué)且功能強大的編程語言,其豐富的模塊能夠處理各種任務(wù),包括操作 Excel 文件。通過編寫 Python 代碼,您可以輕松地將數(shù)據(jù)寫入 Excel 表格,無論是小規(guī)模的數(shù)據(jù)集還是大規(guī)模的數(shù)據(jù)處理,使用 Python 自動化數(shù)據(jù)寫入過程都可以大大提高工作效率,減少人為錯誤的發(fā)生。
本文中將介紹如何使用 Python 寫入數(shù)據(jù)到 Excel 表格,提供更高效和準(zhǔn)確的 Excel 表格數(shù)據(jù)寫入方案,從而簡化數(shù)據(jù)處理流程并節(jié)省寶貴的時間和精力。本文主要包含以下幾個方面:
- Excel 數(shù)據(jù)寫入相關(guān)介紹
- 通過 Python 寫入文本或數(shù)值到 Excel 單元格
- 通過 Python 寫入數(shù)組到 Excel 工作表
- 通過 Python 寫入 CSV 數(shù)據(jù)到 Excel 工作表
- 通過 Python 寫入 XML 數(shù)據(jù)到 Excel 工作表
本文所使用的方法需要用到 Spire.XLS for Python,可從官網(wǎng)下載或通過 PyPI 安裝:
pip install Spire.XLS
Excel 數(shù)據(jù)寫入相關(guān)介紹
- 本文所使用的 API 中,使用 Workbook 類來代表一個 Excel 工作簿。在操作 Excel 工作簿時,可以使用該類下的 LoadFromFile() 方法從文件讀取 Excel 工作簿進行操作或直接通過創(chuàng)建 Workbook 的對象從而創(chuàng)建工作簿進行操作。需要注意的是,新建的 Excel 工作簿默認(rèn)有三個工作表。
- 同時,該 API 還提供 Worksheet 類和一系列方法、屬性來對工作表及其中的單元格數(shù)據(jù)、格式等內(nèi)容進行操作。
- 表格數(shù)據(jù)的主要來源有 CSV 文件、文本、數(shù)組、XML 文件等。當(dāng)我們需要制作報告等方便查看和分析的表格時,通過程序?qū)⑦@些類型的表格數(shù)據(jù)寫入到 Excel 表格中可以實現(xiàn)高效精確的表格生成。
- Worksheet.Range[str] 屬性用于獲取指定單元格或指定單元格范圍。其中,單元格和單元格范圍的表示方法與 Excel 相同,即 “字母 + 數(shù)字” 表示單元格,“字母 + 數(shù)字:字母 + 數(shù)字” 表示單元格范圍,如 “A1” 和 “A1:C3”。
- Workbook.SaveToFile(str, FileFormat) 方法用于保存 Excel 工作簿到文件,可將 FileFormat 枚舉類型作為參數(shù)設(shè)置保存的文件格式。
通過 Python 寫入文本或數(shù)字?jǐn)?shù)據(jù)到 Excel 單元格
使用 Workbook 類直接創(chuàng)建 Excel 工作簿或載入工作簿之后,可以使用該類下的方法設(shè)置格式及寫入數(shù)據(jù)。以下是寫入文本或數(shù)值到 Excel 單元格操作示例:
- 導(dǎo)入所需模塊。
- 創(chuàng)建 Workbook 類的對象以創(chuàng)建 Excel 工作簿。
- 使用 Workbook.Worksheets.Clear() 方法刪除默認(rèn)的工作表,并使用 Workbook.Worksheets.Add() 方法新建一個工作表。
- 通過 Worksheet 類下的屬性設(shè)置單元格格式。
- 通過 Worksheet.Range[].Text 屬性添加文本或數(shù)值到指定單元格。
- 使用 Workbook.SaveToFile() 方法保存工作簿到文件并關(guān)閉工作簿。
代碼示例:
from spire.xls import Workbook from spire.xls import Worksheet from spire.xls import FileFormat # 創(chuàng)建Excel工作簿 workbook = Workbook() # 刪除工作表并創(chuàng)建新的工作表 workbook.Worksheets.Clear() worksheet = workbook.Worksheets.Add("成員信息") # 設(shè)置單元格格式 worksheet.Range["A1:D1"].Style.Font.IsBold = True worksheet.Rows[0].RowHeight = 30 worksheet.Range["A1:D1"].Style.Font.Size = 12 worksheet.Range["A2:D4"].Style.Font.Size = 11 # 寫入表頭數(shù)據(jù) worksheet.Range["A1"].Text = "序號" worksheet.Range["B1"].Text = "姓名" worksheet.Range["C1"].Text = "年齡" worksheet.Range["D1"].Text = "職業(yè)" # 寫入其他數(shù)據(jù) worksheet.Range["A2"].Text = "1" worksheet.Range["A3"].Text = "2" worksheet.Range["A4"].Text = "3" worksheet.Range["B2"].Text = "約翰" worksheet.Range["B3"].Text = "喬伊" worksheet.Range["B4"].Text = "邁克" worksheet.Range["C2"].Text = "35" worksheet.Range["C3"].Text = "28" worksheet.Range["C4"].Text = "42" worksheet.Range["D2"].Text = "工程師" worksheet.Range["D3"].Text = "律師" worksheet.Range["D4"].Text = "醫(yī)生" # 保存工作簿 workbook.SaveToFile("output/寫入數(shù)據(jù)到單元格.xlsx", FileFormat.Version2016) workbook.Dispose()
輸出的 Excel 工作簿:
通過 Python 寫入數(shù)組到 Excel 工作表
使用 Worksheet.InsertArray(arrObject: List[], firstRow: int, firstColumn: int, isVertical: bool) 方法可以插入數(shù)組到 Excel 工作表中,同時可設(shè)置插入的位置及方式。以下是操作步驟介紹:
- 導(dǎo)入所需模塊。
- 創(chuàng)建 Workbook 對象以創(chuàng)建 Excel 工作簿。
- 使用 Workbook.Worksheets.Clear() 方法清除默認(rèn)的工作表,并使用 Workbook.Worksheets.Add() 方法新建一個名為 "銷售數(shù)據(jù)" 的工作表。
- 使用 Worksheet 類下的屬性設(shè)置單元格格式。
- 創(chuàng)建一個二維數(shù)組 tableArray,其中包含要插入到工作表的數(shù)據(jù)。
- 遍歷二位數(shù)組的每一個列表,使用 Worksheet.InsertArray() 方法將列表中的數(shù)據(jù)插入到工作表的指定單元格中。
- 使用 Workbook.SaveToFile() 方法將工作簿保存到指定的文件中并關(guān)閉工作簿。
代碼示例:
from spire.xls import Workbook from spire.xls import FileFormat # 創(chuàng)建Excel工作簿 workbook = Workbook() # 清除默認(rèn)工作表并新建工作表 workbook.Worksheets.Clear() worksheet = workbook.Worksheets.Add("銷售數(shù)據(jù)") # 設(shè)置單元格格式 worksheet.Range["A1:D1"].Style.Font.IsBold = True worksheet.Rows[0].RowHeight = 30 worksheet.Range["A1:D1"].Style.Font.Size = 12 worksheet.Range["A2:D4"].Style.Font.Size = 11 # 數(shù)組 tableArray = [ ["日期", "產(chǎn)品", "銷售額"], ["20220101", "產(chǎn)品A", "1000"], ["20220101", "產(chǎn)品B", "1500"], ["20220102", "產(chǎn)品A", "1200"], ["20220102", "產(chǎn)品B", "1800"], ["20220103", "產(chǎn)品A", "900"], ["20220103", "產(chǎn)品B", "1600"] ] # 將數(shù)據(jù)逐行插入工作表 i = 1 for array in tableArray: worksheet.InsertArray(array, i, 1, False) # 保存工作簿 workbook.SaveToFile("output/寫入數(shù)組到工作表.xlsx", FileFormat.Version2016) workbook.Dispose()
輸出的 Excel 工作簿:
通過 Python 寫入 CSV 數(shù)據(jù)到 Excel 工作表
在將 CSV 數(shù)據(jù)寫入 Excel 表格時,我們可以直接使用 Workbook.LoadFromFile () 方法載入 CSV 文件并保存為 XLSX 格式,從而將 CSV 文件直接轉(zhuǎn)換為 Excel 工作簿。再載入 CSV 文件時,可通過分隔符作為參數(shù)來載入不同分隔符的 CSV 表格。以下是操作示例:
- 導(dǎo)入所需模塊。
- 創(chuàng)建 Workbook 類的對象。
- 使用 Workbook.LoadFromFile() 方法載入 CSV 文件。
- 使用 Workbook.SaveToFile() 方法將 CSV 文件保存為 Excel 工作簿。
代碼示例:
from spire.xls import Workbook from spire.xls import FileFormat # 創(chuàng)建Workbook類的對象 workbook = Workbook() # 載入CSV文件 workbook.LoadFromFile("銷量統(tǒng)計.csv", ",") # 保存為Excel工作簿 workbook.SaveToFile("output/寫入CSV數(shù)據(jù)到工作表.xlsx", FileFormat.Version2016) workbook.Dispose()
保存結(jié)果:
通過 Python 寫入 XML 數(shù)據(jù)到 Excel 工作表
寫入 XML 數(shù)據(jù)到 Excel 工作表需要讀取 XML 數(shù)據(jù),然后先將表頭寫入工作表,然后再寫入對應(yīng)數(shù)據(jù)到單元格中。需要根據(jù) XML 表格數(shù)據(jù)的結(jié)構(gòu)調(diào)整代碼進行寫入。 下面是操作步驟介紹:
- 導(dǎo)入模塊。
- 創(chuàng)建一個 Workbook 類的對象。
- 清除默認(rèn)工作表并使用 Workbook.Worksheets.Add(str Name) 方法添加一個工作表。
- 設(shè)置工作表的單元格格式。
- 加載 XML 數(shù)據(jù),使用 xml.etree.ElementTree 模塊的 parse 方法解析 XML 文件,獲取根元素和子元素。
- 獲取第一個 student 節(jié)點來確定列數(shù)和表頭。
- 寫入表頭,通過迭代表頭節(jié)點并將其作為列標(biāo)題寫入工作表。
- 寫入數(shù)據(jù),通過迭代每個學(xué)生節(jié)點和對應(yīng)的數(shù)據(jù)節(jié)點,使用 Worksheet.SetValue(int rowIndex, int columnIndex, str Valuw) 將數(shù)據(jù)值寫入工作表。
- 使用 SaveToFile 方法將工作簿保存為指定路徑的 Excel 文件并釋放資源。
代碼示例:
from spire.xls import * from spire.common import * import xml.etree.ElementTree as ET # 創(chuàng)建一個Workbook類的對象 workbook = Workbook() # 清除默認(rèn)工作表并添加一個工作表 workbook.Worksheets.Clear() worksheet = workbook.Worksheets.Add("學(xué)生信息") # 設(shè)置單元格格式 for i in range(len(worksheet.Columns)): col = worksheet.Columns.get_Item(i) col.ColumnWidth = 10 # 加載 XML 數(shù)據(jù) xml_tree = ET.parse("學(xué)生信息.xml") xml_root = xml_tree.getroot() # 獲取第一個order節(jié)點來確定列數(shù)和表頭 first_student = xml_root.find("student") header = list(first_student.iter())[1:] # 跳過第一個節(jié)點 # 寫入表頭 for col_index, header_node in enumerate(header, start=1): header_text = header_node.tag worksheet.SetValue(1, col_index, header_text) # 寫入數(shù)據(jù) row_index = 2 for student in xml_root.iter("student"): for col_index, data_node in enumerate(list(student.iter())[1:], start=1): # 跳過第一個節(jié)點 value = data_node.text header_text = list(header[col_index - 1].iter())[0].tag worksheet.SetValue(row_index, col_index, value) row_index += 1 # 保存工作簿為新的 Excel 文件 workbook.SaveToFile("output/寫入XML到工作表.xlsx") workbook.Dispose()
部分 XML 數(shù)據(jù):
<?xml version="1.0" encoding="UTF-8"?> <students> <student> <id>1</id> <name>John Doe</name> <major>Data Science</major> <gpa>3.8</gpa> <age>20</age> <gender>Male</gender> <contact> <email>john.doe@example.com</email> <phone>123-456-7890</phone> </contact> </student>
輸出的 Excel 工作簿:
以上就是使用Python實現(xiàn)將數(shù)據(jù)寫入Excel工作表的詳細(xì)內(nèi)容,更多關(guān)于Python數(shù)據(jù)寫入Excel的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python筆記_將循環(huán)內(nèi)容在一行輸出的方法
今天小編就為大家分享一篇python筆記_將循環(huán)內(nèi)容在一行輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08django-rest-swagger對API接口注釋的方法
今天小編就為大家分享一篇django-rest-swagger對API接口注釋的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08django 多數(shù)據(jù)庫及分庫實現(xiàn)方式
這篇文章主要介紹了django 多數(shù)據(jù)庫及分庫實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼
這篇文章主要介紹了Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12關(guān)于Pytorch MaxUnpool2d中size操作方式
今天小編就為大家分享一篇關(guān)于Pytorch MaxUnpool2d中size操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01