• 締切済み

python Excelのシートのコピーについて

お世話になります。 pythonにてxlutilsを使用してExcelの操作を勉強しているのですが テンプレート(1)を読込、ファイル(2)の内容を読込ながら 新規ファイルを複数作成する処理にて困っております。 値のコピーは出来るのですが、テンプレート内に色や罫線・結合セルなどがあり これらを丸ごとコピーしたいのですが、どうすればよいでしょうか? 流れとしては、 (1)読込⇒シート丸ごとコピー⇒(2)読込⇒値設定⇒書出 だと思うのですが、そもそも書式(スタイル)のコピーはできますか? 環境はpython2.6.2 のwindowsです。

みんなの回答

回答No.1

xls形式(Excel2007のxlsxはXMLのzipなので別の話となります)において、 結論からすると、無理そうです。 もともと、xlutils は、 Excelファイルの「読み」専用のxlrdと、「書き」専用のxlwt を橋渡しする(たとえば、全値のコピーとか)ためのライブラリのようです。 xlutilsのほかに、pyExcelerator というライブラリもありますが、 これも同様で、読みと書きは別です。(このライブラリは、読むだけ、 書くだけならかなり使いやすいです。) どうしても、Pythonを使う場合、pywin32でWindowsのCOM経由で 操作するしかないような気がします。ただし、この方法は 実行速度に難ありです。 Pythonにこだわらなければ、VBScriptによるWSHとかのほうが現実的 かもしれません。 最近、Pythonを使った開発案件で、追加要件で激しくデコレーションした Excelのシートコピーを対応する必要があり、 VBScriptによるWSHを使って逃げたことがあります。

cocomonchi
質問者

お礼

やっぱりコピーは無理そうなんですね。。 pywin32も実行速度に難があるとなると・・・ pyExceleratorで罫線・結合などの設定ができたので テンプレート内容を手動で設定するしかなさそうですね。。。 pythonにこだわらず、別の言語での実現を検討してみます。 ご回答ありがとうございました。

関連するQ&A