電子書籍の厳選無料作品が豊富!

お世話になります。

pythonにてxlutilsを使用してExcelの操作を勉強しているのですが
テンプレート(1)を読込、ファイル(2)の内容を読込ながら
新規ファイルを複数作成する処理にて困っております。

値のコピーは出来るのですが、テンプレート内に色や罫線・結合セルなどがあり
これらを丸ごとコピーしたいのですが、どうすればよいでしょうか?

流れとしては、
(1)読込⇒シート丸ごとコピー⇒(2)読込⇒値設定⇒書出
だと思うのですが、そもそも書式(スタイル)のコピーはできますか?

環境はpython2.6.2 のwindowsです。

A 回答 (1件)

xls形式(Excel2007のxlsxはXMLのzipなので別の話となります)において、


結論からすると、無理そうです。

もともと、xlutils は、
Excelファイルの「読み」専用のxlrdと、「書き」専用のxlwt
を橋渡しする(たとえば、全値のコピーとか)ためのライブラリのようです。
xlutilsのほかに、pyExcelerator というライブラリもありますが、
これも同様で、読みと書きは別です。(このライブラリは、読むだけ、
書くだけならかなり使いやすいです。)

どうしても、Pythonを使う場合、pywin32でWindowsのCOM経由で
操作するしかないような気がします。ただし、この方法は
実行速度に難ありです。

Pythonにこだわらなければ、VBScriptによるWSHとかのほうが現実的
かもしれません。
最近、Pythonを使った開発案件で、追加要件で激しくデコレーションした
Excelのシートコピーを対応する必要があり、
VBScriptによるWSHを使って逃げたことがあります。
    • good
    • 0
この回答へのお礼

やっぱりコピーは無理そうなんですね。。
pywin32も実行速度に難があるとなると・・・
pyExceleratorで罫線・結合などの設定ができたので
テンプレート内容を手動で設定するしかなさそうですね。。。

pythonにこだわらず、別の言語での実現を検討してみます。

ご回答ありがとうございました。

お礼日時:2009/09/14 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!