Python:如何打开多页 .xlsx 文件(带格式)并编辑一些单元格并将其另存为另一个 .xlsx 文件
Posted
技术标签:
【中文标题】Python:如何打开多页 .xlsx 文件(带格式)并编辑一些单元格并将其另存为另一个 .xlsx 文件【英文标题】:Python: How to open a multisheet .xslx file (with formatting) and edit a few cells and save it as another .xlsx file 【发布时间】:2015-08-05 12:40:55 【问题描述】:我曾尝试使用 openpyxl,但在我保存文件 (http://pastebin.com/VU5LTajH) 时它似乎失败了,而且我找不到任何有关该问题的信息。
任何其他模块可以让您阅读编辑和保存 .xlsx 文件,同时保留原始文件的样式和格式?
【问题讨论】:
【参考方案1】:您可以使用 win32com 库(我假设您在 Windows 上工作)并通过 COM 发送 excel 应用程序。 在内部,您可以使用 VBA 中可用的所有方法(因此可以很好地使用 Object model reference 作为文档)。
下面是我如何使用它的简化示例。
import win32com.client
excel = win32com.client.gencache.EnsureDispatch ("Excel.Application")
excel.Visible = True
workbook = excel.Workbooks.Open(filepath)
if isinstance(worksheetName, str):
worksheet = workbook.Worksheets(worksheetName)
else: #assume that worksheetName is number
sheet = workbook.Worksheets[worksheetName]
def getRange(worksheet, address):
return worksheet.Range(address)
def getValue(range_):
"""Returns values from specified range, as tuple of tuples (even if range
is single row) or single value if range is one cell"""
return range_.Value2
def setValue(range_, values):
range_.Value2 = values
我看到工作簿对象有方法SaveAs
,所以我会在更改单元格值后使用它将它保存为另一个文件,如下所示:
workbook.SaveAs("newFilename")
【讨论】:
以上是关于Python:如何打开多页 .xlsx 文件(带格式)并编辑一些单元格并将其另存为另一个 .xlsx 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中打开和读取一个 excel .xlsx 文件
用python如何将文件夹内部分指定文件名的文件复制到目标文件夹,大佬求教!
python pandas打开excel语句:pd.ExcelFile(r'D:\demo.xlsx')怎样用一个变量代替文件地址字符串?