2017-07-11 32 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

相關問題