為什么選擇 Python 進行數(shù)據(jù)轉(zhuǎn)換?
Python 在數(shù)據(jù)處理領(lǐng)域擁有極其豐富的生態(tài)系統(tǒng)和簡潔的語法,是實現(xiàn)自動化任務的理想工具。相比手動操作,使用 Python 處理 Excel 與 CSV 轉(zhuǎn)換有以下優(yōu)勢:
高效省時:可批量處理文件,幾秒內(nèi)完成。
結(jié)果準確:避免人工輸入造成的格式或編碼錯誤。
可重復執(zhí)行:一次編寫腳本,隨時復用,適合周期性任務。
靈活擴展:可輕松集成到更復雜的自動化或數(shù)據(jù)分析流程中。
在眾多 Python 庫中,Spire.XLS for Python 以其對 Excel 與 CSV 的高兼容性和穩(wěn)定性能而脫穎而出。它支持多種 Excel 版本,并能靈活控制 CSV 的分隔符、編碼和格式細節(jié),是企業(yè)級數(shù)據(jù)處理的可靠選擇。
在開始前,請使用以下命令安裝Spire.XLS 庫:
pip install spire.xls
示例一:Excel 轉(zhuǎn) CSV
將 Excel 文件轉(zhuǎn)換為 CSV 文件,是常見的數(shù)據(jù)導出需求。下面的示例演示如何用 Spire.XLS 將 Excel 文件高效地導出為 CSV:
from spire.xls import *
# 定義輸入和輸出文件路徑
input_excel = "input.xlsx"
output_csv = "output.csv"
# 創(chuàng)建一個示例 Excel 文件
workbook_create = Workbook()
sheet = workbook_create.Worksheets[0]
sheet.Name = "員工信息"
sheet.Range["A1"].Value = "姓名"
sheet.Range["B1"].Value = "年齡"
sheet.Range["C1"].Value = "城市"
sheet.Range["A2"].Value = "張三"
sheet.Range["B2"].Value = "25"
sheet.Range["C2"].Value = "北京"
sheet.Range["A3"].Value = "李四"
sheet.Range["B3"].Value = "30"
sheet.Range["C3"].Value = "上海"
workbook_create.SaveToFile(input_excel, ExcelVersion.Version2016)
workbook_create.Dispose()
# 加載 Excel 文件
workbook = Workbook()
workbook.LoadFromFile(input_excel)
# 獲取第一個工作表并導出為 CSV 文件
sheet = workbook.Worksheets[0]
sheet.SaveToFile(output_csv, ",", Encoding.get_UTF8())
workbook.Dispose()
print(f"Excel 文件 '{input_excel}' 已成功轉(zhuǎn)換為 CSV 文件 '{output_csv}'")
說明:
通過 sheet.SaveToFile() 方法,可以直接將 Excel 轉(zhuǎn)換為 CSV 文件。第三個參數(shù)用于指定編碼(如 Encoding.get_UTF8()),第二個參數(shù)為分隔符(如逗號 , 或分號 ;)。
示例二:CSV 轉(zhuǎn) Excel
將 CSV 文件轉(zhuǎn)換為 Excel 格式,可以更方便地進行格式設置、計算或制圖。以下示例演示如何完成這一過程:
from spire.xls import *
from spire.xls.common import *
# 定義輸入和輸出文件路徑
input_csv = "input.csv"
output_excel = "output.xlsx"
# 創(chuàng)建一個示例 CSV 文件
csv_content = "姓名,年齡,城市\(zhòng)n王五,28,廣州\n趙六,35,深圳\n"
with open(input_csv, "w", encoding="utf-8") as f:
f.write(csv_content)
# 創(chuàng)建 Workbook 對象并加載 CSV 文件
workbook = Workbook()
workbook.LoadFromFile(input_csv, ",", 1, 1)
# 自動調(diào)整列寬
sheet = workbook.Worksheets[0]
sheet.AllocatedRange.AutoFitColumns()
# 保存為 Excel 文件
workbook.SaveToFile(output_excel, ExcelVersion.Version2016)
workbook.Dispose()
print(f"CSV 文件 '{input_csv}' 已成功轉(zhuǎn)換為 Excel 文件 '{output_excel}'")
說明:
LoadFromFile() 方法可以直接加載 CSV 文件,并指定分隔符(如 ,)及起始行列。
使用 sheet.AllocatedRange.AutoFitColumns() 可自動調(diào)整列寬,讓內(nèi)容完整顯示。
實用技巧與注意事項
編碼設置
處理 CSV 文件時,編碼非常重要。如果編碼不匹配,容易出現(xiàn)亂碼。
在保存或加載文件時,可以通過 Encoding.get_UTF8() 或 Encoding.get_GB2312() 指定編碼。
若不確定文件編碼,可借助 chardet 庫檢測。
大文件性能
對于數(shù)十萬行以上的大型文件,建議分批讀取或確保充足的內(nèi)存資源。
異常處理
在自動化腳本中加入 try-except 塊和日志記錄,可幫助快速定位錯誤,如文件路徑錯誤或格式異常。
總結(jié)
借助 Spire.XLS for Python,Excel 與 CSV 文件的相互轉(zhuǎn)換不再繁瑣。 通過簡單幾行代碼,就能完成過去需要手動操作的任務,大大提高了效率和準確性。