在 Python 中,可以採用 pandas、pyexcel、win32com 和 xls2xlsx 這四個模組,實現 xls 轉 xlsx 格式。
以 Excel 示例檔案 test_Excel.xls 為例,具體內容如下圖所示:
1.pandas
安裝命令
pip install pandas -i https://mirrors.aliyun.com/pypi/simple
具體使用方法
import pandas as pd
filename = "test_Excel.xls"
outfile = "test_Excel-pandas.xlsx"
# Read Excel xls file
data = pd.read_excel(filename)
# Write to xlsx file with no row index
data.to_excel(outfile, index=False)
注:上面的方法輸出的 xlsx 檔案同樣只保留了文字,沒有保留格式資訊。
2.win32com
安裝命令
python -m pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple
具體使用方法
import os
import win32com.client as win32
filename = "test_Excel.xls"
outfile = "test_Excel-win32.xlsx"
# Open up Excel
excel = win32.gencache.EnsureDispatch("Excel.Application")
# Open xls file
wb = excel.Workbooks.Open(os.path.abspath(filename))
# Save as xlsx file
wb.SaveAs(os.path.abspath(outfile), FileFormat=51)
wb.Close()
excel.Application.Quit()
注:win32com 模組只適用於已安裝 Excel 軟體的Windows 系統下,但輸出的 xlsx 檔案可以同時保留文字和格式。
3.xls2xlsx
安裝命令
pip install xlrd xls2xlsx -i https://mirrors.aliyun.com/pypi/simple
具體使用方法
from xls2xlsx import XLS2XLSX
#學習中遇到問題沒人解答?小編建立了一個Python學習交流群:725638078
filename = "test_Excel.xls"
outfile = "test_Excel-x2x.xlsx"
# Read xls file
x2x = XLS2XLSX(filename)
# Write to xlsx file
x2x.to_xlsx(outfile)
注:使用上面的方法得到的 xlsx 檔案可以同時保留文字和格式資訊,並且不依賴於 Windows 系統和 Excel 程式。
4.pyexcel
安裝命令
pip install pyexcel -i https://mirrors.aliyun.com/pypi/simple
具體使用方法
import pyexcel
filename = "test_Excel.xls"
outfile = "test_Excel-pyexcel.xlsx"
# Convert xls file to xlsx directly
pyexcel.save_book_as(file_name=filename, dest_file_name=outfile)
注:上面的方法輸出的 xlsx 檔案同樣只保留了文字,沒有保留格式資訊。