我已经读过Pandas 可以读取和修改单个 Excel 文件工作表(选项卡)而不修改文件的其余部分吗?但在这里我的问题是针对下文提到的布局的。
如何使用 Pandas 打开 Excel 文件,进行一些修改,然后将其保存回来:
-
(1) 不删除有一个Filter
在第一行
-
(2)不修改Excel中显示的列的“显示列宽”
-
(3) 不删除某些单元格中可能存在的公式
?
这是我尝试过的,这是一个简短的例子(实际上我用 Pandas 做了更多处理):
import pandas as pd
df = pd.read_excel('in.xlsx')
df['AB'] = df['A'].astype(str) + ' ' + df['B'].astype(str) # create a new column from 2 others
del df['Date'] # delete columns
del df['Time']
df.to_excel('out.xlsx', index=False)
通过这段代码,Filter
第一行的宽度被删除,显示的列宽被设置为默认值,这不是很方便(因为我们必须手动设置所有列的正确宽度)。
如果您使用的机器上安装了 Excel,那么我强烈建议您使用灵活的xlwingsAPI。这回答了你所有的问题。
假设我有一个名为demo.xlxs
与我的程序位于同一目录中。
app.py
import xlwings as xw # pip install xlwings
import pandas as pd
wb = xw.Book('demo.xlsx')
这将创建一个启动 Excel 工作簿实例并打开 Excel 编辑器以允许您调用 Python 命令。
假设我们有以下数据框,我们想用它来替换 ID 和 Name 列:
new_name
A John_new
B Adams_new
C Mo_new
D Safia_new
wb.sheets['Sheet1']['A1:B1'].value = df
最后,您可以保存并关闭。
wb.save()
wb.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)