Excel をインストールせずに C# で Open Office Excel ファイルを読み取る方法
適切なライブラリを使用すれば、C# で OpenDocument Spreadsheet (ODS) ファイルや Excel ファイルを読み込み、処理するのは簡単です。 IronXLを使えば、XLS、XLSX、ODS、CSVファイルを1つのメソッド呼び出しでオブジェクトにロードできます。 このガイドでは、パッケージのインストール、ファイルの読み込み、型付きセル値の抽出、名前付きワークシートの操作、結合セルの処理、Linuxまたはコンテナ環境へのデプロイなど、すべての手順を順を追って説明します。
.NETプロジェクトにIronXLをインストールするにはどうすればよいですか?
NuGetパッケージ マネージャーのインストール
NuGetパッケージマネージャーを使用して、 IronXLをプロジェクトに追加してください。 Visual StudioでPackage Manager Consoleを開き、実行してください:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
IronXLは.NET 8、.NET 9、.NET 10、.NET Framework 4.6.2+、.NET Standard 2.0を対象としているため、最新のコードベースにもレガシーなコードベースにも適合します。パッケージがインストールされたら、スプレッドシートを扱うファイルの先頭にusing IronXL;ディレクティブを追加してください。
Azure Functions、Dockerコンテナ、またはLinuxホスト型APIの場合、追加のランタイム構成は不要です。 このライブラリは必要なものをすべて内部にバンドルしており、Excelの自動化コンポーネントを呼び出すことはありません。
C#でOpenOfficeまたはExcelファイルを読み込むにはどうすればよいですか?
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ファイルにも有効です。パスを変更するだけで済みます。 CODE-43303--@@は、ソース形式に関係なく同じstrong-typedオブジェクトを返すので、Microsoft Excel、LibreOffice、その他のODF準拠アプリケーションのファイルであっても、残りのコードは同じままです。
ワークシートの各行とセルをどのように読み取るのですか?
行コレクションの反復処理
インポートデータの検証であれ、レコードの変換であれ、あるいはレポートパイプラインへの入力であれ、すべての行とセルを繰り返し処理することは最も一般的なエクセルの処理タスクです。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
CODE-43306--@および@@--CODE-43307--@プロパティは、入力された範囲のみを返します。 読む前に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
プロパティツリーは、OOXML SpreadsheetML仕様の構造を反映しています。 しかし、 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", file形式: ExcelFile形式.TSV)を使用して、形式を明示的に指定してください。
| 形式 | 拡大 | 制作: | 注意事項 |
|---|---|---|---|
| XLSX | .xlsx/code> |
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オブジェクトのライフサイクル管理は手作業です:すべての@--CODE-43316--@、@--CODE-43317--@、@--CODE-43318--@オブジェクトを明示的にリリースしなければなりません。 ライセンスも懸念事項です。OfficeのEULA(エンドユーザー使用許諾契約)では、多くのシナリオにおいてサーバー側の自動化が禁止されています。
IronXLはこれらの制約をすべて回避します。 これはCOMに依存しない、純粋なマネージドライブラリです。 オブジェクトは.NETの標準クラスです; ガベージコレクタがクリーンアップ処理を行います。同じコードを開発者用ノートパソコン、Azure App Service、Dockerコンテナ、またはLinuxを実行しているRaspberry Piで実行できます。
MicrosoftのOpen XML SDKも別の選択肢です。Excelを必要とせずにOOXMLファイル形式に直接アクセスできますが、非常に低レベルで動作するため、XML要素を直接操作する必要があります。 単一のセル値を読み取るには、共有文字列テーブル、セル参照、およびスタイルインデックスをナビゲートする必要があります。 IronXLはそのすべてをこのガイドの中で示されている1行の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の初期化手順がないため、コールドスタート時のオーバーヘッドは最小限です。
スレッドセーフが組み込まれており、複数のスレッドが協調することなく、異なるインスタンスを同時に開くことができます。 たとえば、ユーザーがアップロードしたスプレッドシートを取り込むバックグラウンドジョブで、何千ものファイルを並列処理する必要がある場合、Parallel.ForEachまたはTask.WhenAllをWorkBookインスタンスのプール全体で使用することができ、破損のリスクはありません。
IronXLは初期化時にワークブック全体ではなく、要求されたワークシートのみをメモリに読み込むため、メモリ使用量は予測可能なままです。 非常に大きなファイルの場合、この違いは重要になります。例えば、50MBのシートが10枚含まれているワークブックでは、1枚のシートを読み込むためだけに500MBのRAMは必要ありません。 IronXLのパフォーマンスに関するドキュメントには、大量のファイルを処理するシナリオに対応するための追加的な戦略が記載されています。
次のステップは何ですか?
プロジェクトでIronXL を検証する最も簡単な方法は、 NuGetパッケージをインストールし、このガイドのサンプルを実際の環境にあるファイルに対して実行することです。 無料トライアルライセンスでは、本番環境への移行時にコード変更を一切必要とせず、すべての機能が利用可能になります。
ファイル読み取りを補完するIronXLの関連機能をご覧ください。
- C#でExcelファイルを作成・書き込み、プログラムでレポートやデータのエクスポートを作成する セル、行、列の書式設定- コードで色、フォント、罫線を適用
- C# で Excel 数式を操作する-- 数式セルの読み書き
- .NETでExcelを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 ファイルを処理する軽量ソリューションを提供することで効率性を高めます。



