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')怎样用一个变量代替文件地址字符串?

安卓手机如何打开.xlsx;文件

leadtools20,从多个图像创建多页文件

leadtools20,从多个图像创建多页文件