IronXLを使用してPythonでExcelファイルを読み取る方法

チャクニット・ビン
チャクニット・ビン
2019年5月26日
更新済み 2024年10月20日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

このガイドは、Python開発者がMicrosoft Excelドキュメントを読み、編集するためのIronXLライブラリを利用するためのステップバイステップの手順を提供します。

IronXLは、.NETPythonプログラミング言語を含む複数のプログラミング言語をサポートする包括的なExcelファイル処理ライブラリです。 このチュートリアルでは、特にPythonスクリプトでIronXLを使用してMicrosoft Excelドキュメントを読み込み、編集することに焦点を当てます。

.NETアプリケーションでMicrosoft Excelドキュメントを読み取り、編集する方法についての別のチュートリアルについては、次のリンクを参照してください:こちら

IronXL for Python を使えば、Pythonで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")
PYTHON

WorkBookには複数のWorkSheetオブジェクトを持たせることができます。 それぞれは、Excelドキュメント内の単一のExcelワークシートを表します。 WorkBook.GetWorkSheet メソッドを使用して、特定のExcelワークシートへの参照を取得します。

# Assuming workBook is an existing instance of WorkBook
workSheet = workBook.GetWorkSheet("GDPByCountry")
PYTHON

新しいExcelドキュメントの作成

新しいExcelドキュメントを作成するには、有効なファイルタイプを持つ新しいWorkBookオブジェクトを構築します。

# Create a new WorkBook with the specified Excel file format
workBook = WorkBook(ExcelFileFormat.XLSX)
PYTHON

注: レガシー版のMicrosoft Excel(95およびそれ以前)をサポートするには、ExcelFileFormat.XLSを使用してください。

Excelドキュメントにワークシートを追加

前述のとおり、IronXL for Python のWorkBookには、1つ以上のWorkSheetのコレクションが含まれています。

これは Excel で 2 つのワークシートを持つ 1 つのワークブックがどのように見えるかです。

これは、Excelで2つのワークシートがある1つのワークブックの見た目です。

新しいワークシートを作成するには、ワークシートの名前を指定してWorkBook.CreateWorkSheetを呼び出します。

workSheet = workBook.CreateWorkSheet("GDPByCountry")
PYTHON

セル値へのアクセス

単一のセルを読み取りおよび編集

個々のスプレッドシートセルの値へのアクセスは、以下のようにWorkSheetから目的のセルを取得することで行われます。

# Load existing spreadsheet
workbook = WorkBook.Load("test.xlsx")
worksheet = workbook.DefaultWorkSheet

# Access cell B1 in the worksheet
cell = worksheet["B1"]
PYTHON

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)
PYTHON

セルの範囲の値を読み書きする

Range クラスは、Cell オブジェクトの2次元コレクションを表します。 このコレクションは、Excelセルのリテラル範囲を指します。 文字列インデクサーをWorkSheetオブジェクトで使用して範囲を取得します。

引数のテキストは、セルの座標(例:「A1」、前に示したように)または左から右、上から下のセル範囲(例:「B2:E5」)です。 また、WorkSheetGetRangeを呼び出すことも可能です。

# Access range D2:D101 in the worksheet
range_ = workSheet["D2:D101"]
PYTHON

スプレッドシートに数式を追加する

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}"
PYTHON

サマリー

IronXLはPython用のスタンドアローンライブラリで、様々なスプレッドシートフォーマットを読み込むことができます。 それをインストールするためにMicrosoft Excelを必要とせず、Interopに依存しません。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。