これには 2 つの基本的なアプローチがあります。
あなたは最初の質問について尋ねました: ファイルを開いて保存するための Excel の自動化。実際には、これを行うには 2 つの方法があります。2 つ目は、Excel の助けを借りずに Python で直接ファイルを作成できる Python ツールを使用することです。そう:
1a: 自動化インターフェイスを介して Excel を自動化します。
Excel は、COM オートメーションを通じて、外部アプリによって制御されるように設計されています。Python には、 内に優れた COM オートメーション インターフェイスがありpywin32
ます。残念ながら、ドキュメントはそれほど優れたものではなく、Excel の COM オートメーション インターフェイスに関するドキュメントはすべて、JScript、VB、.NET、または C の生の COM 用に書かれてpywin32
います。このwin32com
ような Excel を駆動するので、おそらく自分で理解できます。次のようになります。
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
spreadsheet = excel.Workbooks.Open('C:/path/to/spreadsheet.xml')
spreadsheet.SaveAs('C:/path/to/spreadsheet.xls', fileformat=excel.xlExcel8)
Excel が手元にある Windows ボックスを持っていないため、これはまったくテストされていません。そして、win32com からファイル形式名にアクセスする際に問題が発生し、同等の数値をパントして検索したことをぼんやりと覚えています (「fileformat xlExcel8」のクイック グーグルは、同等の数値が 56 であることを示し、それが 97-2003 の正しい形式であることを確認しますバイナリ xls)。
もちろん、Python で行う必要がない場合は、MSDN に JScript や VBA などの素晴らしい例がたくさんあります。
必要なドキュメントはすべてMSDNにあります( Office Developer Network for Excelが MSDN に統合され、404 ページになったようです)。Excel の最上位ページは、Excel 2013 開発者リファレンスへようこそ(別のバージョンが必要な場合は、上のナビゲーションで [Office クライアント開発] をクリックして別のバージョンを選択してください)。オブジェクト モデル リファレンス。Excel の組み込みヘルプでも、同じドキュメント (多くの場合、まったく同じ Web ページへのリンク) を見つけることができます。たとえば、Application
オブジェクトがWorkbooks
プロパティを持っていることがわかります。これはWorkbooks
オブジェクトであり、オブジェクトを返すメソッドがOpen
あります。Add
Workbook
オブジェクトには、値=を持つ typeSaveAs
のオプションのFileFormat
パラメーターを受け取るメソッドがあります。XlFileFormat
xlExcel8
56
前に暗示したように、何らかの理由で列挙値にアクセスできない場合xlExcel8
がありますが、MSDN で値を調べて (または単に Google で検索して)、代わりに数値 56 を入力してください。
他のドキュメント (ここと MSDN 内の他の場所の両方) は、通常、自分で推測できるものか、win32com
. 残念ながら、すでにまばらなwin32com
ドキュメントでは、そのドキュメントを読んでいることを前提としていますが、幸いなことに、オブジェクト モデル以外のほとんどすべてを理解するのに十分な例があります。
1b: GUI による Excel の自動化。
Windows で GUI を自動化するのは大変な作業ですが、pywinauto
. を使用してスクリプトをswapy
作成できる場合があります。pywinauto
Python でそれを行う必要がない場合は、別のスクリプト システムなどAutoIt
を使用すると、より大きなユーザー ベースとより多くの例を使用して、作業が楽になります。
2: すべて Python で実行します。
xlutils
、 python-excelの一部であり、Excel にまったく触れずに、必要なことを実行できる場合があります。