透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
今日のデータ主導の世界において、Microsoft Excelは企業や専門家にとって不可欠なツールであり続けます。数字の計算、レポートの作成、データの可視化に至るまで、Excelの多用途性は他に類を見ません。 しかし、C#でプログラム的にExcelファイルを操作する場合、開発者はしばしば困難に直面します。 ここでIronXLライブラリが登場し、C#環境内でのExcel自動化のシームレスなソリューションを提供します。
IronXL ライブラリは、Iron Software によって提供されており、C# .NET および VB.NET 環境で Excel ドキュメントをシームレスに処理する直感的なAPIを提供します。 IronXL を使用すると、Microsoft Office や Excel Interop コンポーネントをインストールする必要はありません。 これは、開発者がExcelスプレッドシートファイルを簡単に読み取り、編集し、作成することを可能にし、.NET 8、7、6、Core Frameworks、およびAzure環境を含むさまざまな.NETフレームワークを完全にサポートします。
この記事では、C#とIronXLを使用してExcelの列幅と行高さを自動調整する方法を学びます。
プロジェクトにIronXLライブラリーをインストールします。
IronXLライブラリを使用して列の幅を自動調整します。
IronXLライブラリを使用して行の高さを自動調整する。
IronXL ライブラリは、C#開発者向けにExcelスプレッドシートの操作を簡素化するために設計された多用途の.NETライブラリです。 高速かつ直感的なAPIを提供するIronXLは、Office Interopに頼ることなく、ユーザーがExcelファイルに簡単にアクセス、修正、生成できるようにします。その互換性は、特別な依存関係やMicrosoft Officeのインストールを必要とせず、.NET CoreやAzureを含むさまざまな.NETフレームワークにまで及びます。C#、VB.NET、F#など、複数の.NET言語をサポートしており、IronXLはコンソール、ウェブ、デスクトップアプリケーションを含む多様な開発シナリオに対応できます。 さらに、IronXLの互換性はWindows、Linux、macOS、Docker、Azure、AWSなどさまざまなプラットフォームにわたるため、多様な環境で効率的なExcel統合を求める開発者にとって不可欠なツールとなります。
簡単な統合:IronXLはC#アプリケーションとシームレスに統合し、Excel自動化のためのシンプルで直感的なAPIを提供します。 開発者は、最小限の学習曲線で迅速に開始することができます。
Excelファイルの読み書き: IronXLを使用すれば、既存のExcelファイルからデータを簡単に読み取り、新規または既存のスプレッドシートにデータを書き込むことができます。 この機能は、データのインポート/エクスポートやレポート生成といったタスクに不可欠です。
フォーマットとスタイリング: IronXLを使用すると、フォント、色、ボーダーなどを含むExcelセルにフォーマットとスタイリングを適用することができます。 これにより、生成されたExcelファイルがプロフェッショナルで洗練された外観を保つことができます。
Formula Support: Excelデータに対して複雑な計算を実行したり、数式を適用したりする必要がありますか? IronXLはExcelの数式をサポートしており、計算やデータ操作を自動化することができます。
始めに、以下のようにVisual Studioプロジェクトを作成しましょう。 リストからコンソール アプリケーション テンプレートを選択します
プロジェクト名と場所を提供してください
必要な .NET バージョンをドロップダウンから選択し、「作成」をクリックしてください。
Visual StudioのNuGetパッケージマネージャーからIronXLライブラリをインストール
このパッケージは、NuGet コマンドラインを使用してインストールすることもできます。
dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.3.20 Install-Package IronXL.Excel
これでコードの記述を開始する準備が整いました。
AutoSizeColumn メソッドは、IronXL ライブラリから取得され、列の内容に合うようにその幅を調整します。 このメソッドは、セルに使用されているフォントに基づいてテキストの幅を計算します。 システムに該当のフォントが存在しない場合、デフォルトフォントを使用して測定を試みます。 デフォルトのフォントが見つからない場合、利用可能なフォントを使用しようとします。 しかし、フォントが見つからない場合は、例外がスローされます。 それはパラメータとしてゼロベースの列インデックスを使用します。 0と(ColumnCount - 1)で定義される範囲内でなければなりません。 ArgumentException は、指定された columnIndex が有効な範囲外の場合にスローされます。 SixLabors.Fonts.FontExceptionは、マシンにフォントがインストールされていない場合にスローされます。
では、これを使ってExcelファイルのサイズを変更する方法を見てみましょう。サンプルのExcelファイルはこちらからダウンロードできます。
ここでは、列の幅が適切に定義されておらず、非常に読みづらくなっています。 次に行きましょう
IronXLライブラリを使用して、Excelシートの列幅を自動調整する方法をご覧ください。
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{
// auto fit column width for index i
workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{
// auto fit column width for index i
workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private colCount = workSheet.Columns.Count()
For i As Integer = 0 To colCount - 1
' auto fit column width for index i
workSheet.AutoSizeColumn(i)
Next i
workBook.SaveAs("autoResize.xlsx") ' result file
最初に、WorkBook.Load() メソッドを使用して FinancialSample.xlsx を読み込みます。
次に、列の幅を調整する必要があるセル範囲を取得します。この場合、列の数を取得します。
次に、すべてのインデックスを反復処理して列の幅を自動調整します。
以下では、すべての列が自動サイズで表示されています。
AutoSizeRow メソッドは、内容に合わせて行の高さを調整します。 このメソッドは、セル内で使用されているフォントに基づいてテキストの高さを計算することに注意することが重要です。 システムに該当のフォントが存在しない場合、デフォルトフォントを使用して測定を試みます。 デフォルトのフォントが見つからない場合、利用可能なフォントを使用しようとします。 しかし、フォントが見つからない場合は、例外がスローされます。 それはゼロベースの行インデックスをパラメーターとして使用します。 それは0と(RowCount - 1)で定義された範囲内でなければなりません。 ArgumentException は、指定された rowIndex が有効範囲外の場合にスローされます。 マシンにフォントがインストールされていない場合、SixLabors.Fonts.FontException がスローされます。
以下の例では、いくつかの行がデータに適切に合うようにサイズ調整されていないことがわかります。 次に、Excelの行の高さを自動調整するためのC#コードを見てみましょう。
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private rowCount = workSheet.RowCount
For i As Integer = 0 To rowCount - 1
workSheet.AutoSizeRow(i)
Next i
workBook.SaveAs("autoResizeRows.xlsx") ' result file
最初に、WorkBook.Load() メソッドを使用して FinancialSample.xlsx をロードします。
次に、行の高さを調整する必要があるセル範囲を取得します。この場合、行数を取得します。
次に、すべてのインデックスを反復処理して行の高さを自動調整します。
行と列の自動サイズ調整に加えて、IronXL では、特定の行の高さ値および特定の列の幅値に手動で幅と高さを調整することもできます。
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
workBook.SaveAs("specificValue.xlsx")
最初に、WorkBook.Load() 関数を使用して FinancialSample.xlsx を読み込みます。
次に、行の高さを調整するためのセル範囲と、列の幅を調整するためのセル範囲を取得します。
次に、高さと幅の値を設定します。
取得したライセンスは、appSettings.jsonファイルに配置する必要があります。
{
"IronXL.License.LicenseKey":"myTrialKey"
}
{
"IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
"IronXL.License.LicenseKey":"myTrialKey"
End If
IronXLのAutoSizeColumnやAutoSizeRowのような機能を使用すると、開発者はインポートされたデータ、動的レポート、ユーザー生成コンテンツ、またはデータ分析結果など、含まれているコンテンツに応じてExcelスプレッドシートが動的に調整されることを簡単に実現できます。
IronXL の .NET Core や Azure を含む様々な .NET フレームワークとの互換性により、開発者は Microsoft Office や Excel Interop に依存することなく、幅広いアプリケーションに Excel 自動化を組み込むことができます。さらに、IronXL は複数の .NET 言語とプラットフォームをサポートしているため、多様な環境で Excel 操作タスクを効率化しようとする開発者にとって柔軟な選択肢となります。
本質的に、IronXL は開発者に Excel 自動化プロジェクトにおける生産性、正確性、柔軟性を向上させる力を与え、現代の C# 開発のニーズに応える包括的な機能を提供します。 レポートの生成、データの分析、情報の提示のいずれでも、IronXLはC#エコシステム内でのExcel自動化において成功するために必要なツールを提供します。