Excel をインストールせずに C# で Open Office Excel ファイルを読み取る方法
適切なライブラリを使用すれば、C# で OpenDocument Spreadsheet (ODS) ファイルや Excel ファイルを読み込み、処理するのは簡単です。 IronXL を使用すると、Microsoft Excel のインストールや COM 登録、Interop の煩わしい手続きが一切不要で、単一のメソッド呼び出しによって任意の XLS、XLSX、ODS、または CSV ファイルを WorkBook オブジェクトにロードできます。 このガイドでは、パッケージのインストール、ファイルの読み込み、型付きセル値の抽出、名前付きワークシートの操作、結合セルの処理、Linuxまたはコンテナ環境へのデプロイなど、すべての手順を順を追って説明します。
.NETプロジェクトにIronXLをインストールするにはどうすればよいですか?
NuGetパッケージ マネージャーのインストール
NuGetパッケージマネージャーを使用して、 IronXLをプロジェクトに追加してください。 Visual StudioでPackage Manager Consoleを開き、実行してください:
Install-Package IronXL.Excel
IronXL は .NET 8、.NET 9、.NET 10、.NET Framework 4.6.2以上、および .NET Standard 2.0 に対応しているため、最新のコードベースと従来のコードベースの両方に適しています。パッケージをインストールしたら、スプレッドシートを操作するファイルの先頭に using IronXL; ディレクティブを追加してください。これで、最初のワークブックを読み込む準備が整います。
Azure Functions、Dockerコンテナ、またはLinuxホスト型APIの場合、追加のランタイム構成は不要です。 このライブラリは必要なものをすべて内部にバンドルしており、Excelの自動化コンポーネントを呼び出すことはありません。
OpenOfficeまたはExcelファイルをC#でどうやってロードしますか?
IronXLでは、ODS、XLS、XLSX、CSVファイルをWorkBook.Loadメソッドを通じて同一に扱います。 絶対パスまたは相対パスを渡すと、ライブラリは拡張子だけでなく、ファイルヘッダーからファイル形式を検出します。 これは、.ods から .xlsx に名前を変更されたファイルが依然として正しく読み取られることを意味します。
using IronXL;
// Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
WorkBook workbook = WorkBook.Load("quarterly_report.ods");
// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];
// Read a cell value
string companyName = sheet["A1"].StringValue;
int recordCount = sheet["B1"].IntValue;
Console.WriteLine($"Company : {companyName}");
Console.WriteLine($"Records : {recordCount}");
using IronXL;
// Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
WorkBook workbook = WorkBook.Load("quarterly_report.ods");
// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];
// Read a cell value
string companyName = sheet["A1"].StringValue;
int recordCount = sheet["B1"].IntValue;
Console.WriteLine($"Company : {companyName}");
Console.WriteLine($"Records : {recordCount}");
Imports IronXL
' Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
Dim workbook As WorkBook = WorkBook.Load("quarterly_report.ods")
' Access the first worksheet by index
Dim sheet As WorkSheet = workbook.WorkSheets(0)
' Read a cell value
Dim companyName As String = sheet("A1").StringValue
Dim recordCount As Integer = sheet("B1").IntValue
Console.WriteLine($"Company : {companyName}")
Console.WriteLine($"Records : {recordCount}")
同じ呼び出し方法はXLSXファイルとXLSファイルにも有効です。パスを変更するだけで済みます。 WorkBook.Load は、ソースフォーマットに関係なく同じ強く型付けされたオブジェクトを返すので、ファイルがMicrosoft Excel、LibreOffice、またはその他のODF準拠のアプリケーションから送信された場合でも、残りのコードは同一のままです。
ワークシートの各行とセルをどのように読み取るのですか?
行コレクションの反復処理
すべての行とセルを繰り返し処理することは、Excel処理タスクの中で最も一般的なものです。これには、取り込みデータの検証、レコードの変換、またはレポートパイプラインへのデータ供給が含まれます。IronXLは、すべてのRowsコレクションを公開しています。
using IronXL;
WorkBook workbook = WorkBook.Load("customers.xlsx");
WorkSheet worksheet = workbook.WorkSheets[0];
Console.WriteLine($"Total rows : {worksheet.RowCount}");
Console.WriteLine($"Total columns : {worksheet.ColumnCount}");
Console.WriteLine();
foreach (var row in worksheet.Rows)
{
foreach (var cell in row)
{
if (!cell.IsEmpty)
Console.Write($"{cell.StringValue,-20}");
}
Console.WriteLine();
}
using IronXL;
WorkBook workbook = WorkBook.Load("customers.xlsx");
WorkSheet worksheet = workbook.WorkSheets[0];
Console.WriteLine($"Total rows : {worksheet.RowCount}");
Console.WriteLine($"Total columns : {worksheet.ColumnCount}");
Console.WriteLine();
foreach (var row in worksheet.Rows)
{
foreach (var cell in row)
{
if (!cell.IsEmpty)
Console.Write($"{cell.StringValue,-20}");
}
Console.WriteLine();
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("customers.xlsx")
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
Console.WriteLine($"Total rows : {worksheet.RowCount}")
Console.WriteLine($"Total columns : {worksheet.ColumnCount}")
Console.WriteLine()
For Each row In worksheet.Rows
For Each cell In row
If Not cell.IsEmpty Then
Console.Write($"{cell.StringValue,-20}")
End If
Next
Console.WriteLine()
Next
RowCount と ColumnCount プロパティは、埋め込まれた範囲のみを返します。空の末尾の行と列は含まれません。 スパースシート上での不要な処理を防ぐために、読み込む前にcell.IsEmptyを確認してください。
大きなファイルの場合、完全なシートの繰り返しではなく、範囲ベースのアクセス (worksheet["A1:D500"]) を使用することを検討してください。 これにより、メモリに読み込まれるセル数が制限され、データの一部のみが必要な場合の処理速度が向上します。
セルから入力された値を抽出するにはどうすればよいですか?
型付きプロパティアクセサー
実際の表計算ソフトのセルには、文字列、整数、小数、ブール値、日付などが含まれます。 IronXLは専用の型付きプロパティを公開しているため、生の文字列を手動で解析する必要は一切ありません。
using IronXL;
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Products");
// Typed accessors handle conversion automatically
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal unitPrice = sheet["C2"].DecimalValue;
bool inStock = sheet["D2"].BoolValue;
DateTime? lastAudit = sheet["E2"].DateTimeValue;
Console.WriteLine($"Product : {productName}");
Console.WriteLine($"Qty : {quantity}");
Console.WriteLine($"Price : {unitPrice:C}");
Console.WriteLine($"In Stock : {inStock}");
Console.WriteLine($"Audited : {lastAudit?.ToString("d") ?? "Never"}");
using IronXL;
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Products");
// Typed accessors handle conversion automatically
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal unitPrice = sheet["C2"].DecimalValue;
bool inStock = sheet["D2"].BoolValue;
DateTime? lastAudit = sheet["E2"].DateTimeValue;
Console.WriteLine($"Product : {productName}");
Console.WriteLine($"Qty : {quantity}");
Console.WriteLine($"Price : {unitPrice:C}");
Console.WriteLine($"In Stock : {inStock}");
Console.WriteLine($"Audited : {lastAudit?.ToString("d") ?? "Never"}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("inventory.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Products")
' Typed accessors handle conversion automatically
Dim productName As String = sheet("A2").StringValue
Dim quantity As Integer = sheet("B2").IntValue
Dim unitPrice As Decimal = sheet("C2").DecimalValue
Dim inStock As Boolean = sheet("D2").BoolValue
Dim lastAudit As DateTime? = sheet("E2").DateTimeValue
Console.WriteLine($"Product : {productName}")
Console.WriteLine($"Qty : {quantity}")
Console.WriteLine($"Price : {unitPrice:C}")
Console.WriteLine($"In Stock : {inStock}")
Console.WriteLine($"Audited : {If(lastAudit?.ToString("d"), "Never")}")
セルに数式が含まれている場合、 IronXL はその数式を評価し、同じ型のプロパティを通して計算結果を返します。 別途評価メソッドを呼び出す必要はありません。 空のセルや互換性のない型を含むセルについては、ライブラリは例外をスローするのではなく、その型のデフォルト値を返すため、入力検証ロジックが簡素化されます。
| プロパティ | .NETタイプ | 空の場合に返される | 注意事項 |
|---|---|---|---|
StringValue |
文字列 |
空の文字列 | 常に安全。任意のセルをテキストに変換します。 |
IntValue |
int |
0 |
小数点以下を切り捨てる |
DecimalValue |
10進数 |
0m |
財務データの精度を維持する |
DoubleValue |
ダブル |
0.0 |
科学的または統計的値に使用する |
ブール値 |
ブール |
false |
ExcelのTRUE/FALSEセルを読み取ります |
DateTimeValue |
DateTime? |
null |
null許容 -- 使用前にチェックする |
複数の名前付きワークシートをどのように操作しますか?
名前、インデックス、または反復によるアクセス
Enterpriseのスプレッドシートには、月ごと、地域ごと、製品ラインごとなど、複数の名前付きシートが含まれていることがよくあります。IronXLIronXL、これらのシートにアクセスするための複数の方法を提供しています。
using IronXL;
WorkBook workbook = WorkBook.Load("annual_sales.xlsx");
// Option 1: access by name (throws if the sheet does not exist)
WorkSheet januarySheet = workbook.GetWorkSheet("January");
// Option 2: iterate all sheets in the workbook
foreach (WorkSheet ws in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}");
// Read the header row from each sheet
string header = ws["A1"].StringValue;
Console.WriteLine($" Header: {header}");
}
// Option 3: access by zero-based index
WorkSheet lastSheet = workbook.WorkSheets[workbook.WorkSheets.Count - 1];
Console.WriteLine($"Last sheet: {lastSheet.Name}");
using IronXL;
WorkBook workbook = WorkBook.Load("annual_sales.xlsx");
// Option 1: access by name (throws if the sheet does not exist)
WorkSheet januarySheet = workbook.GetWorkSheet("January");
// Option 2: iterate all sheets in the workbook
foreach (WorkSheet ws in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}");
// Read the header row from each sheet
string header = ws["A1"].StringValue;
Console.WriteLine($" Header: {header}");
}
// Option 3: access by zero-based index
WorkSheet lastSheet = workbook.WorkSheets[workbook.WorkSheets.Count - 1];
Console.WriteLine($"Last sheet: {lastSheet.Name}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("annual_sales.xlsx")
' Option 1: access by name (throws if the sheet does not exist)
Dim januarySheet As WorkSheet = workbook.GetWorkSheet("January")
' Option 2: iterate all sheets in the workbook
For Each ws As WorkSheet In workbook.WorkSheets
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}")
' Read the header row from each sheet
Dim header As String = ws("A1").StringValue
Console.WriteLine($" Header: {header}")
Next
' Option 3: access by zero-based index
Dim lastSheet As WorkSheet = workbook.WorkSheets(workbook.WorkSheets.Count - 1)
Console.WriteLine($"Last sheet: {lastSheet.Name}")
シート名がデザイン時に既知の場合は、GetWorkSheet が最も明確なオプションです。 動的処理では、シート名がユーザー入力や設定から取得されるため、WorkSheets コレクションを反復処理することにより、ハードコードされた仮定を排除し、異なる数のシートを持つワークブックに対処します。
結合されたセルと書式設定された領域はどのように処理しますか?
レポートやダッシュボードでは、見出し、グループ化されたラベル、および要約行に結合セルがよく使用されます。 IronXLは、結合領域の左上のセルから、Excelが表示するのと全く同じ値を読み取ります。
using IronXL;
WorkBook workbook = WorkBook.Load("report_with_merges.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// The merged region A1:D1 stores its value in cell A1
string reportTitle = sheet["A1"].StringValue;
Console.WriteLine($"Report title : {reportTitle}");
// Read cell formatting metadata
var titleCell = sheet["A1"];
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}");
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}");
// Scan an entire column for non-empty section headers
foreach (var cell in sheet["A1:A100"])
{
if (!cell.IsEmpty && cell.Style.Font.Bold)
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}");
}
using IronXL;
WorkBook workbook = WorkBook.Load("report_with_merges.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// The merged region A1:D1 stores its value in cell A1
string reportTitle = sheet["A1"].StringValue;
Console.WriteLine($"Report title : {reportTitle}");
// Read cell formatting metadata
var titleCell = sheet["A1"];
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}");
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}");
// Scan an entire column for non-empty section headers
foreach (var cell in sheet["A1:A100"])
{
if (!cell.IsEmpty && cell.Style.Font.Bold)
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}");
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("report_with_merges.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' The merged region A1:D1 stores its value in cell A1
Dim reportTitle As String = sheet("A1").StringValue
Console.WriteLine($"Report title : {reportTitle}")
' Read cell formatting metadata
Dim titleCell = sheet("A1")
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}")
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}")
' Scan an entire column for non-empty section headers
For Each cell In sheet("A1:A100")
If Not cell.IsEmpty AndAlso cell.Style.Font.Bold Then
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}")
End If
Next
Style プロパティツリーは、OOXML SpreadsheetML 仕様の構造を反映しています。そのため、Open XML SDK を使用したことがある場合は、プロパティ名に馴染みがあるでしょう。 しかし、 IronXLはそうした複雑さをすべて、ユーザー側でXMLを操作する必要のない、クリーンなAPIに包み込んでいます。
同じAPIを使用してCSVファイルをインポートするにはどうすればよいですか?
データベースのエクスポート、CRMシステム、レガシーアプリケーションによって生成されたCSVファイルは、WorkBook.Load呼び出しを通じて同様に読み取ることができます。 IronXLはファイルの内容から区切り文字を推測します。
using IronXL;
// Load a comma-separated values file -- same method, same API
WorkBook csvWorkbook = WorkBook.Load("export.csv");
WorkSheet csvSheet = csvWorkbook.DefaultWorkSheet;
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}");
// Process rows exactly like any other worksheet
foreach (var row in csvSheet.Rows)
{
string id = row[0].StringValue;
string name = row[1].StringValue;
Console.WriteLine($"{id,-10} {name}");
}
using IronXL;
// Load a comma-separated values file -- same method, same API
WorkBook csvWorkbook = WorkBook.Load("export.csv");
WorkSheet csvSheet = csvWorkbook.DefaultWorkSheet;
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}");
// Process rows exactly like any other worksheet
foreach (var row in csvSheet.Rows)
{
string id = row[0].StringValue;
string name = row[1].StringValue;
Console.WriteLine($"{id,-10} {name}");
}
Imports IronXL
' Load a comma-separated values file -- same method, same API
Dim csvWorkbook As WorkBook = WorkBook.Load("export.csv")
Dim csvSheet As WorkSheet = csvWorkbook.DefaultWorkSheet
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}")
' Process rows exactly like any other worksheet
For Each row In csvSheet.Rows
Dim id As String = row(0).StringValue
Dim name As String = row(1).StringValue
Console.WriteLine($"{id,-10} {name}")
Next
読み込み後、csvWorkbook.SaveAs("output.xlsx")を使用してデータをXLSXとして節約できます。 これは、CSVからExcelへの変換パイプラインでよく見られるパターンです。CSVファイルを受け取り、計算列や書式設定を追加して内容を充実させ、書式設定されたXLSXレポートをユーザーに返します。
タブ区切りファイルやカスタム区切り文字の場合は、WorkBook.LoadCSV("file.tsv", fileFormat: ExcelFileFormat.TSV)を使用して形式を明示的に指定してください。
| 形式 | 拡大 | 制作: | 注意事項 |
|---|---|---|---|
| XLSX | .xlsx |
Excel 2007以降、LibreOffice | デフォルトのモダンフォーマット。XMLベース |
| XLS | .xls |
Excel 97~2003 | バイナリ形式。完全な読み書きサポート。 |
| ODS | .ods |
LibreOffice、OpenOffice | OpenDocumentスプレッドシート標準 |
| CSV | .csv |
あらゆるアプリケーション | 区切り文字は自動検出されました。書式設定は行われません。 |
| TSV | .tsv |
データベースのエクスポート | タブ区切り。フォーマットを明示的に指定してください。 |
IronXLはMicrosoft.Office.Interop.Excelと比べてどうですか?
Interop、Open XML SDK、およびIronXLの並列比較
.NETで Excel の自動化を行う際のIronXLの最も一般的な代替手段は、 Microsoft.Office.Interop.Excelです。 トレードオフを理解することで、プロジェクトに最適なツールを選ぶことができます。
Microsoft Interopは、Excel COMオブジェクトモデルをラップします。 つまり、Webサーバー、ビルドエージェント、クラウドVMなど、コードを実行するすべてのマシンにExcelをインストールする必要があるということです。 COMオブジェクトのライフサイクル管理は手動です。すべてのWorkbookオブジェクトを明示的に解放しなければ、Excelのプロセスがバックグラウンドで蓄積し、サーバーが再起動するまでメモリを消費し続けます。 ライセンスも懸念事項です。OfficeのEULA(エンドユーザー使用許諾契約)では、多くのシナリオにおいてサーバー側の自動化が禁止されています。
IronXLはこれらの制約をすべて回避します。 これはCOMに依存しない、純粋なマネージドライブラリです。 WorkBookオブジェクトは標準 for .NETクラスです。 ガベージコレクタがクリーンアップ処理を行います。同じコードを開発者用ノートパソコン、Azure App Service、Dockerコンテナ、またはLinuxを実行しているRaspberry Piで実行できます。
MicrosoftのOpen XML SDKも別の選択肢です。Excelを必要とせずにOOXMLファイル形式に直接アクセスできますが、非常に低レベルで動作するため、XML要素を直接操作する必要があります。 単一のセル値を読み取るには、共有文字列テーブル、セル参照、およびスタイルインデックスをナビゲートする必要があります。 IronXLはすべてをこのガイド全体に示されている単一行のsheet["A1"].StringValue呼び出しにまとめています。
Excel処理をLinuxとDockerにデプロイするにはどうすればよいですか?
サーバー展開においてこそ、IronXLがExcelに依存しないことの真価が発揮される。 Windowsで書いたコードは、Ubuntu、Alpine Linux、macOSでもそのまま動作します。 コンテナ化されたデプロイメントの場合、Dockerfileに特別な設定は必要ありません。
# Standard .NET runtime image -- no Office packages needed
FROM mcr.microsoft.com/dotnet/runtime:10.0
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "ExcelProcessor.dll"]
# Standard .NET runtime image -- no Office packages needed
FROM mcr.microsoft.com/dotnet/runtime:10.0
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "ExcelProcessor.dll"]
Azure FunctionsとAWS Lambdaの場合、 IronXLは追加の設定なしでマネージドランタイム内で動作します。 COMの初期化手順がないため、コールドスタート時のオーバーヘッドは最小限です。
スレッドセーフ性が組み込まれています:複数のスレッドが異なるWorkBookインスタンスを同時に開くことができ、調整を必要としません。 ユーザーがアップロードしたスプレッドシートを取り込むバックグラウンドジョブなどで、数千のファイルを並行して処理する必要がある場合、Parallel.ForEach や Task.WhenAll を WorkBook インスタンスのプールで使用しても、破損のリスクはありません。
IronXLは初期化時にワークブック全体ではなく、要求されたワークシートのみをメモリに読み込むため、メモリ使用量は予測可能なままです。 非常に大きなファイルの場合、この違いは重要になります。例えば、50MBのシートが10枚含まれているワークブックでは、1枚のシートを読み込むためだけに500MBのRAMは必要ありません。 IronXLパフォーマンスドキュメントでは、高ボリュームのファイル処理シナリオを処理するための追加戦略について説明しています。
次のステップは何ですか?
プロジェクトでIronXL を検証する最も簡単な方法は、 NuGetパッケージをインストールし、このガイドのサンプルを実際の環境にあるファイルに対して実行することです。 無料トライアルライセンスでは、本番環境への移行時にコード変更を一切必要とせず、すべての機能が利用可能になります。
ファイル読み取りを補完するIronXLの関連機能をご覧ください。
- C#でExcelファイルを作成および作成する --プログラム的にレポートとデータエクスポートを構築します
- セル、行、列のフォーマット --コードで色、フォント、境界線を適用します
- C#でExcelの数式を操作する --数式セルを読み書きします
- Excelを.NETでPDFに変換する --スプレッドシートデータからPDFレポートを生成します
- IronXL APIドキュメント-- すべてのクラスとメソッドの完全なリファレンス IronXLのライセンスと価格設定- 個人開発者向けおよびEnterpriseチーム向けのオプション
- IronXL NuGet ページ -- すべてのプロジェクトタイプ向けのインストール手順
- IronXLチュートリアル --一般的なユースケースのステップバイステップガイド
- IronXLをEPPlusと比較する --機能とライセンスの比較を横並びで行います IronXL製品ホーム- 機能概要と入門リソース
ライセンス、クロスプラットフォーム対応、または特定のファイル形式要件に関するご質問は、 IronXLサポートチームがライブチャットとメールで対応いたします。
よくある質問
Excel をインストールせずに C# で Open Office Excel ファイルを読み取るにはどうすればよいですか?
IronXLライブラリを使用すると、サーバーにExcelをインストールすることなく、C#でOpen Office Excelファイルを読み取ることができます。WorkBook.Loadメソッドを1回呼び出すだけで、XLS、XLSX、ODS、CSVファイルを効率的に読み込むことができます。
IronXLを使用して処理できる Excel ファイルの種類は何ですか?
IronXL は、XLS、XLSX、ODS (OpenDocument スプレッドシート)、CSV ファイルなどのさまざまな Excel ファイル形式の処理をサポートしているため、LibreOffice や OpenOffice などのさまざまなスプレッドシート アプリケーションで汎用的に使用できます。
開発者が Excel ファイルの読み取りに Microsoft Interop ではなくIronXL を使用する必要があるのはなぜですか?
IronXL は、Microsoft Excel や COM Interop を必要とせずに Excel ファイルを処理するためのよりシンプルで効率的な方法を提供し、運用サーバーの複雑さとオーバーヘッドを軽減し、Linux および Docker の展開を可能にします。
IronXL は、MS Excel 以外のスプレッドシート アプリケーションで作成されたファイルを処理できますか?
はい、 IronXL はOpenOffice Calc や LibreOffice Calc などの他のスプレッドシート アプリケーションからファイルを読み取って処理できるため、ODS および ODF 準拠の形式で作業する開発者にとって柔軟なツールになります。
IronXLを使用するには、運用サーバーに Excel をインストールする必要がありますか?
いいえ、 IronXLを使用すると、本番サーバーに Excel をインストールする必要がないため、導入が簡素化され、メンテナンスの負担も軽減されます。IronXLは、Windows、Linux、macOS、そして Docker コンテナ内で動作します。
IronXL はCSV ファイルの処理をサポートしていますか?
はい、 IronXL は同じ WorkBook.Load API を使用して、XLS、XLSX、ODS などの他の Excel 形式とともに CSV ファイルの読み取りと処理を完全にサポートしています。
.NET開発者にとってIronXL を使用する利点は何ですか?
IronXL は、Microsoft Excel を必要とせずに Excel ファイルの読み取り、書き込み、操作を行うための使いやすいライブラリを.NET開発者に提供し、クリーンかつ厳密に型指定された API によって生産性を向上し、開発時間を短縮します。
IronXL はExcel ファイルの処理効率をどのように向上させるのでしょうか?
IronXL は、Excel ソフトウェアの必要性をなくし、型指定されたセル値アクセサー、スレッドセーフな同時処理、および.NETアプリケーション内で直接 Excel ファイルを処理する軽量ソリューションを提供することで効率性を高めます。




