【问题标题】:Pandas update excel file with formattingPandas 使用格式更新 excel 文件
【发布时间】:2018-05-08 15:47:20
【问题描述】:

我有一个 excel 文件,它有多个工作表和特殊格式(颜色、符号等...)。

在 Python 中,我知道我可以将文件读入数据框,更新某些列,然后将文件写回,但它会丢失所有格式并被覆盖。

有没有办法打开文件,只更新某些列的值,保持其他工作表不变并按原样格式化?

【问题讨论】:

    标签: python excel pandas file


    【解决方案1】:

    是的,您可以通过这种方式使用 openpyxl,例如:

    from openpyxl.reader.excel import load_workbook
    wb = load_workbook(filename='mypath\myfile.xlsx')
    ws = wb.worksheets[0]
    ws.cell(coordinate="A1").value = 2
    wb.save("mypath\myfile.xlsx") 
    

    单元格 A1 具有特定格式。它的格式保持不变,只有单元格的值发生变化。

    要读取单元格的值,可以这样:

    ws.cell(row=row_number, column=column_number).value
    

    要使用 for 循环更改列的值,这是一个选项:

    new_data = ['a','b','c','d']
    for index, cell in enumerate(ws['A']):
        cell.value = new_data[index]
    

    【讨论】:

    • 我可以为整个专栏做这个吗?它只是 ws.column 而不是 ws.cell 吗?
    • 在我拥有的 openpyxl 版本中,我无法检查。根据文档openpyxl.readthedocs.io/en/2.5/tutorial.html,有 ws.column。但无论如何,您可以使用 for 循环,或者 cell_range = ws['A1':'A10']
    • @MustardTiger 我添加了一个带有 for 循环的示例来替换列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2017-10-24
    • 2023-03-08
    • 2018-09-26
    • 2015-11-09
    • 2014-07-02
    相关资源
    最近更新 更多