2017-07-11 31 views
1

我想格式化我在同一个脚本中创建的python中的excel文档。我发现的所有答案都涉及将现有的工作簿加载到python中并从中进行格式化。在我的脚本中,我正在编写整个非格式化的Excel表格,保存文件,然后立即将文档重新加载到python中进行格式化。这是我可以找到的唯一解决方法,以便我可以拥有活动工作表。在python中无需加载工作簿的Excel格式

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行,但可能是这样。

+0

http://xlsxwriter.readthedocs.io/format.html完成了任务,这是艾伦的回答有不同的引擎现在 –

回答

1

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) 

...会做的工作

1

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

完全控制openpyxl为大熊猫数据框对象的支持:http://openpyxl.readthedocs.io/en/latest/pandas.html

相关问题