Python Transfer Transfer Excel格式在两个Excel文档之间进行



我想在python中复制两个excel表之间的格式。

以下情况是:

我有一个脚本,可以通过使用pd.excelwriter打开它来有效地"改变"(即覆盖)excel文件,然后在行中更新值。最后,使用ExcelWriter覆盖文件。

excel文件是由人类在代码完成的更新之间打印/共享/读取的。人类将执行诸如更改数字格式,打开/关闭单词包装和更改列宽度之类的事情。

我的目标是代码更新只能更改文件的内容,而不是列的格式。

有什么方法可以在Python中阅读/存储/编写表格格式,因此输出文件具有与输入文件相同的列格式?

这是我现在正在做什么的基本思想:

df_in= pd.read_excel("myfile.xlsx")    
# Here is where I'd like to read in format of the first sheet of this file
xlwriter = pd.ExcelWriter('myfile.xlsx', engine='xlsxwriter')
df_out = do_update(df_in)
df_out.to_excel(xlwriter,'sheet1')
# Here is where I'd like to apply the format I read earlier to the sheet
xlwriter.save()

注意:我已经玩过xlsxwriter.set_column和add_format。据我所知,这些无助于我从当前文件中阅读格式

pandas使用xlrd软件包将Excel文档解析到DataFrames。

其他xlsx软件包和xlrd之间的互操作性在表示格式信息的数据结构时可能会出现问题。

我建议在实例化pandas.ExcelWriter时使用openpyxl作为引擎。它带有可互操作的读者和作家课。

import pandas as pd
from openpyxl.styles.stylesheet import apply_stylesheet
from openpyxl.reader.excel import ExcelReader
xlreader = ExcelReader('myfile.xlsx', read_only=True)
xlwriter = pd.ExcelWriter('myfile.xlsx', engine='openpyxl')
df_in = pd.read_excel("myfile.xlsx")
df_out = do_update(df_in)
df_out.to_excel(xlwriter,'sheet1')
apply_stylesheet(xlreader.archive, xlwriter.book)
xlwriter.save()

最新更新