在python中的Excel格式不加载工作簿

我想格式化一个Excel中的文档,我在同一个脚本中创build的Python。 我发现的所有答案都涉及到加载一个现有的工作簿到Python中,并从那里格式化。 在我的脚本中,我正在写整个非格式化的Excel表格,保存文件,然后立即重新加载文件到python格式。 这是唯一的解决方法,我可以find这样我可以有一个积极的工作表。

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中创build的对象取决于您所提供的“引擎”。 在这种情况下,您传递“openpyxl”,所以ExcelWriter正在制作一个openpyxl.Workbook()对象。 您可以使用“Workbook()”在openpyxl中创build一个新的工作簿像这样:

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

它使用1个活动工作表创build。 基本上:

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

会做这个工作

您的标题是误导性的:您正在pandas工作,并倾销到Excel。 pandas确实允许一些格式化,但是,因为它试图支持不同的Python库(openpyxl,xlsxwriter和xlwt),所以对此有一些限制。

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