【发布时间】:2018-05-08 15:47:20
【问题描述】:
我有一个 excel 文件,它有多个工作表和特殊格式(颜色、符号等...)。
在 Python 中,我知道我可以将文件读入数据框,更新某些列,然后将文件写回,但它会丢失所有格式并被覆盖。
有没有办法打开文件,只更新某些列的值,保持其他工作表不变并按原样格式化?
【问题讨论】:
我有一个 excel 文件,它有多个工作表和特殊格式(颜色、符号等...)。
在 Python 中,我知道我可以将文件读入数据框,更新某些列,然后将文件写回,但它会丢失所有格式并被覆盖。
有没有办法打开文件,只更新某些列的值,保持其他工作表不变并按原样格式化?
【问题讨论】:
是的,您可以通过这种方式使用 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]
【讨论】: