不加载工作簿的python Excel格式

不加载工作簿的python Excel格式,python,excel,format,openpyxl,xlsxwriter,Python,Excel,Format,Openpyxl,Xlsxwriter,我正在尝试在python中格式化excel文档,我正在使用相同的脚本创建该文档。我找到的所有答案都涉及将现有工作簿加载到python中并从中格式化。在我的脚本中,我正在编写整个未格式化的excel工作表,保存文件,然后立即将文档重新加载到python中进行格式化。这是我能找到的唯一解决办法,这样我就可以有一个活动的工作表 writer=pd.ExcelWriter(file_name, engine='openpyxl') writer.save()#saving my file wb=load

我正在尝试在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)

这可以改变列宽等方面,但我希望有一种方法可以在不保存和重新加载的情况下格式化页面。当还没有写文件名的时候,有没有一种方法可以绕过对活动工作表的需求?我想要一种删除第2行和第3行的方法,但是可能是这样。

熊猫在ExcelWriter中创建的对象取决于您提供给它的“引擎”。在本例中,您将传递“openpyxl”,因此ExcelWriter将生成一个openpyxl.Workbook()对象。您可以使用“工作簿()”在openpyxl中创建新工作簿,如下所示:

它是使用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提供了对熊猫数据框对象的支持:

完成了任务,这是Alan现在用不同引擎的答案