在python中格式化Excel,而无需加载工作簿



我正在尝试在python中格式化我在同一脚本中创建的excel文档。我找到的所有答案都涉及将现有工作簿加载到 python 并从那里格式化。在我的脚本中,我目前正在编写整个未格式化的 excel 工作表,保存文件,然后立即将文档重新加载到 python 中以格式化。这是我能找到的唯一解决方法,以便我可以有一个活动工作表。

writer=pd.ExcelWriter(file_name, engine='openpyxl')
writer.save()#saving my file
wb=load_workbook(file_name) #reloading file to format
ws=wb.active
ws.column_dimensions['A'].width=33
ws.column_dimensions['B'].width=16 
wb.save(file_name)

这可以更改列宽等方面,但我想要一种无需保存和重新加载即可格式化页面的方法。有没有办法在还没有写file_name时绕过对活动工作表的需求?我想要一种方法来删除第 2 行和第 3 行,但这可能是。

Pandas 在 ExcelWriter 中创建的对象取决于您给它的"引擎"。 在这种情况下,你传递的是"openpyxl",所以ExcelWriter正在制作一个openpyxl。工作簿(( 对象。 您可以使用"Workbook(("在openpyxl中创建一个新的工作簿,如下所示:

https://openpyxl.readthedocs.io/en/default/tutorial.html#create-a-workbook

它是用 1 个活动工作表创建的。 基本上:

import openpyxl
wb = openpyxl.Workbook()
ws=wb.active
ws.column_dimensions['A'].width=33
ws.column_dimensions['B'].width=16 
wb.save(file_name)

。会做这项工作

你的标题具有误导性:你正在熊猫工作并转储到 Excel。Pandas确实允许对此进行一些格式化,但是,因为它尝试支持不同的Python库(openpyxl,xlsxwriter和xlwt(,因此对此有限制。

对于完全控制,openpyxl 为 Pandas 的 DataFrame 对象提供支持: http://openpyxl.readthedocs.io/en/latest/pandas.html

最新更新