IronXLを使用してPythonでExcelファイルを読み取る方法
このガイドは、Python開発者がMicrosoft Excelドキュメントを読み、編集するためのIronXLライブラリを利用するためのステップバイステップの手順を提供します。
IronXLは、.NETやPythonプログラミング言語を含む複数のプログラミング言語をサポートする包括的なExcelファイル処理ライブラリです。 このチュートリアルでは、特にPythonスクリプトでIronXLを使用してMicrosoft Excelドキュメントを読み込み、編集することに焦点を当てます。
.NETアプリケーションでMicrosoft Excelドキュメントを読み取り、編集する方法についての別のチュートリアルについては、次のリンクを参照してください:こちら。
IronXL for Python を使えば、PythonでExcelファイルを読み込んだり作成したりすることが簡単にできます。
概要
PythonでExcelファイルを読む方法
- PythonライブラリをダウンロードしてExcelファイルを読み込む
- Excelファイル(ワークブック)を読み込んで読み取る
- CSVまたはXLSX形式でExcelワークブックを作成する
- セル範囲内のセル値を編集する
- スプレッドシートデータを検証する
- エンティティフレームワークを使用してデータをエクスポートします
チュートリアル
ステップ1: PythonプロジェクトにIronXLを追加する(Python用IronXL)
IronXLライブラリをPythonプロジェクトに統合するには、一般的に使用されているPythonパッケージ管理ツールpipを使用して依存関係としてインストールする必要があります。 ターミナルを開き、次のコマンドを実行します:
pip install IronXL
これは指定されたバージョンのIronXLをプロジェクトにインストールし、インポートできるようにします。
[{i:(IronXL for Pythonは、その基盤技術として、特に.NET 6.0のIronXL .NETライブラリに依存しています。 したがって、IronXL for Pythonを使用するには、マシンに.NET 6.0 SDKをインストールする必要があります。
2. Excel ワークブックを読み込む
WorkBook
クラスはExcelシートを表します。 Excelファイルを開くには、WorkBook.Load
メソッドを使用し、Excelファイルのパスを指定します。
# Load existing spreadsheet
workbook = WorkBook.Load("Spreadsheets\\GDP.xlsx")
各WorkBook
には複数のWorkSheet
オブジェクトを持たせることができます。 それぞれは、Excelドキュメント内の単一のExcelワークシートを表します。 WorkBook.GetWorkSheet
メソッドを使用して、特定のExcelワークシートへの参照を取得します。
# Assuming workBook is an existing instance of WorkBook
workSheet = workBook.GetWorkSheet("GDPByCountry")
新しいExcelドキュメントの作成
新しいExcelドキュメントを作成するには、有効なファイルタイプを持つ新しいWorkBook
オブジェクトを構築します。
# Create a new WorkBook with the specified Excel file format
workBook = WorkBook(ExcelFileFormat.XLSX)
注: レガシー版のMicrosoft Excel(95およびそれ以前)をサポートするには、ExcelFileFormat.XLS
を使用してください。
Excelドキュメントにワークシートを追加
前述のとおり、IronXL for Python のWorkBook
には、1つ以上のWorkSheet
のコレクションが含まれています。
新しいワークシートを作成するには、ワークシートの名前を指定してWorkBook.CreateWorkSheet
を呼び出します。
workSheet = workBook.CreateWorkSheet("GDPByCountry")
セル値へのアクセス
単一のセルを読み取りおよび編集
個々のスプレッドシートセルの値へのアクセスは、以下のようにWorkSheet
から目的のセルを取得することで行われます。
# Load existing spreadsheet
workbook = WorkBook.Load("test.xlsx")
worksheet = workbook.DefaultWorkSheet
# Access cell B1 in the worksheet
cell = worksheet["B1"]
IronXL for Python の Cell
クラスは、Excel スプレッドシートの個々のセルを表します。 それには、ユーザーがセルの値に直接アクセスし、修正することを可能にするプロパティとメソッドが含まれています。
各WorkSheet
オブジェクトは、Excelワークシート内のすべてのセル値に対応するCell
オブジェクトのインデックスを管理します。 上記のソースコードでは、標準的な配列インデックス構文を使用して、行と列のインデックス(この場合はセルB1)で目的のセルを参照しています。
セルオブジェクトへの参照を使うと、スプレッドシートのセルにデータを読み書きすることができます。
# Access cell B1 in the worksheet
cell = workSheet["B1"]
# Read the value of the cell as a string
value = cell.StringValue
print(value)
# Write a new value to the cell
cell.Value = "10.3289"
print(cell.StringValue)
セルの範囲の値を読み書きする
Range
クラスは、Cell
オブジェクトの2次元コレクションを表します。 このコレクションは、Excelセルのリテラル範囲を指します。 文字列インデクサーをWorkSheet
オブジェクトで使用して範囲を取得します。
引数のテキストは、セルの座標(例:「A1」、前に示したように)または左から右、上から下のセル範囲(例:「B2:E5」)です。 また、WorkSheet
でGetRange
を呼び出すことも可能です。
# Access range D2:D101 in the worksheet
range_ = workSheet["D2:D101"]
スプレッドシートに数式を追加する
Formula
プロパティで Cell
の数式を設定します。
以下のコードは各州を繰り返し処理し、列Cにパーセンテージの合計を入力します。
# Iterate through all rows with a value
for y in range(2, i):
# Get the C cell
cell = workSheet[f"C{y}"]
# Set the formula for the Percentage of Total column
cell.Formula = f"=B{y}/B{i}"
サマリー
IronXLはPython用のスタンドアローンライブラリで、様々なスプレッドシートフォーマットを読み込むことができます。 それをインストールするためにMicrosoft Excelを必要とせず、Interopに依存しません。