2017-04-25 17 views
1

こんにちは私はPythonには比較的新しいので、皆さんがテンプレートの問題についてアドバイスを提供できることを期待していました。特定の書式のWord/Excel文書にPythonデータフレームを書き込む

エクセルファイルを解析し、データからデータフレームを作成し(xl.parse、.loc、str.contains、str.split、sort_indexなどのメソッドを使用)、別のExcelファイルに出力しましたそのよう: Excel doc with dataframe

私は、フォーマットにこだわっている - などの色で、特定の細胞、

強調する追加の境界線、(2つの異なる出力ファイル間の同じ位置にある必要はない)、文字列の太字特定の行を、私はそれに従わなければならないテンプレートを持っています(word doc):Format to replicate (word doc)

1)ゼロから書式設定を複製

2)出力からの生データを書き込みが言葉にファイルをエクセルのpythonから(ExcelやWord文書)として、次のいずれかは、私はこれについて二つの方法を検討していますどのような方法でより効果的であるかを誰かが教えてくれれば幸いです。そして、私が仕事を遂行するために調べることができるライブラリや方法/機能は何ですか?

ありがとうございました!

+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 

あなたは大胆な行この方法は、することができます:

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) 

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

あなたは、このようなセルの背景色を設定することができますWord文書に書き込むには、docxの例を使用してください。http://pbpython.com/python-word-template.html

1

これを行うにはいくつかの方法があります。私は通常、次の2つの方法のいずれかを行います:

1)XLSX writer:このパッケージは、Excelファイルの書式を変更する機能をサポートしています。ですから、私のワークフローはPythonでPandasを使ってExcelにデータをエクスポートした後、データがExcelファイルに入った後にXLSXでフォーマットを操作します。あなたがthis demoから見ることができるように、パンダとXLSXライターはうまく一緒に遊びます。

2)一部のワークフローでは、Excelで実行したかった書式の量/タイプが、XLSX Writerと妥当ではないことがわかりました。そのような場合は、Excelではないデータにデータを入れ、ExcelをExcelにリンクするのが最善の方法です。 1つの簡単なアプローチは、データをCSVにダンプし、整形済みのExcelファイルをCSVにリンクすることです。また、Pandasを使用してデータをデータベースにプッシュし、ExcelファイルでDBからデータをプルすることもできます。

関連する問題