IronPython を使って Excel ファイルの指定セルの値を取得
IronPython を使って、既存 Excel ファイルの指定セルの値を取得するサンプルを作成する。
事前準備
Microsoft Office 2003 がインストールされていれば、以下のように clr を import し、office と Excel の .NETアセンブリを AddReference するだけでよい。(Office 2003 では、GAC に Office 用の .NETアセンブリがインストールされる)
・・・ import clr clr.AddReference("office") clr.AddReference("Microsoft.Office.Interop.Excel") from Microsoft.Office.Core import * from Microsoft.Office.Interop.Excel import * ・・・
Worksheet オブジェクトの取得
- Workbook.Worksheets[シート名]
Worksheet オブジェクト取得スクリプト例
sheet = book.Worksheets["Sheet1"]
Range オブジェクトの取得
セルや範囲を表す Range オブジェクトは、WorkSheet オブジェクトから以下のようにして取得する。
- WorkSheet.Cells[行, 列]
- WorkSheet.Range[セル範囲]
Range オブジェクトからセルの値を取得するには Value プロパティに XlRangeValueDataType 列挙型の値を指定する
セル C7 の値を取得するスクリプト例
・・・ #既定の形式でセルの値を出力 print sheet.Cells[7, 3].Value[XlRangeValueDataType.xlRangeValueDefault] #XMLレコードセット形式でセルの値を出力 print sheet.Range["C7"].Value[XlRangeValueDataType.xlRangeValueMSPersistXML] ・・・
セルの値を出力するスクリプト例(全体)
# coding: utf-8 # # Excel の指定のセルの値を出力するサンプル import sys if len(sys.argv) < 2: print ">ipy %s [input file name]" % sys.argv[0] sys.exit() from System import * from System.IO import * import clr clr.AddReference("office") clr.AddReference("Microsoft.Office.Interop.Excel") from Microsoft.Office.Core import * from Microsoft.Office.Interop.Excel import * app = ApplicationClass() app.Visible = MsoTriState.msoFalse book = app.Workbooks.Open(FileInfo(sys.argv[1]).FullName) sheet = book.Worksheets["Sheet1"] #セル A10 の値を出力 print sheet.Range["A10"].Value[XlRangeValueDataType.xlRangeValueDefault] book.Close(False) app.Quit()