2017-04-25 45 views
1

您好我對python比較陌生,並且希望您們中的任何人都可以提供關於模板事宜的建議。將Python數據框寫入具有特定格式的Word/Excel文檔

我設法解析一個excel文件,從數據中取出一個數據框(使用xl.parse,.loc,str.contains,str.split,sort_index等方法),並將其輸出到另一個excel文件中像這樣: Excel doc with dataframe

我卡在格式化 - 添加邊框,字符串的加粗的某些行(不一定在2個不同的輸出文件之間的相同的位置),突出某些細胞與顏色等

我有一個模板,我必須遵循,像這樣(word文檔):Format to replicate (word doc)

我考慮這個方法有兩種:

1)從頭複製的格式化通過蟒(無論是作爲Excel或Word文檔)

2)寫入來自輸出的原始數據excel文件到字doc與模板

如果有人能夠啓發我更有效的方式,以及我可以研究哪些庫,方法/函數來完成工作,那將會很棒。

謝謝!

+0

如何格式化爲excel的一個很好的例子可以在[Practical Business Python](http://pbpython.com/improve-pandas-excel-output.html)博客中找到 –

回答

1

我推薦使用xlsxwriter。你可以用這樣的代碼添加邊框:

import xlsxwriter 

# left 
begcol = 2 # skip first col 
endcol = ws.UsedRange.Columns.Count 
begrow = 2 # skip first row 
endrow = ws.UsedRange.Rows.Count 

ws.Range(ws.Cells(begrow, begcol), 
     ws.Cells(endrow, endcol)).Borders(7).LineStyle = 1 # continuous 
ws.Range(ws.Cells(begrow, begcol), 
     ws.Cells(endrow, endcol)).Borders(7).Weight = 2 # thin 

你可以大膽一排這樣:

# bold last row 
ws.Range(ws.Cells(endrow, begcol), 
     ws.Cells(endrow, endcol)).Font.Bold = True 

可以集中小區這樣的背景顏色:

format = workbook.add_format() 

format.set_pattern(1) # This is optional when using a solid fill. 
format.set_bg_color('green') 

worksheet.write('A1', 'Ray', format) 

要寫入Word文檔,您可以使用docx以及如何在此處執行此操作的示例:http://pbpython.com/python-word-template.html

1

有幾個很好的方法來做到這一點。我通常採用以下兩種方法之一:

1)XLSX writer:此軟件包支持更改Excel文件的格式。所以我的工作流程是使用Python中的Pandas將數據導出到Excel中,然後在數據處於Excel文件中後,我將使用XLSX處理格式。從this demo可以看到熊貓和XLSX Writer在一起玩的很好。

2)對於某些工作流程,我發現我想在Excel中執行的格式設置的數量/類型與XLSX Writer不合理。在這些情況下,最好的選擇是將數據放入不是Excel的東西,然後將Excel鏈接到它。一種簡單的方法是將數據轉儲爲CSV,然後將您良好的Excel文件鏈接到CSV。您也可以使用Pandas將數據推入數據庫,然後讓Excel文件從數據庫中提取數據。

相關問題