はじめに
Aspose.Cells FOSS for .NET は、純粋なマネージドコードで、MIT ライセンスのライブラリであり、読み取り、書き込み、
Excel .xlsx ワークブックの操作を Microsoft Office への依存なしで行えます。インストールはAspose.Cells_FOSS NuGet パッケージとして、任意の .NET プロジェクト — コンソール アプリ、Web
API、バックグラウンド ワーカー、サーバーレス 関数 — に統合できます。
この投稿では、パブリック API の機能ごとのウォークスルーを提供し、可能なことと C# コードから各機能を呼び出す方法を示します。
機能概要
ワークブックとワークシートのライフサイクル
すべての操作のエントリーポイントは Workbook クラスです。new Workbook() を使用してゼロから構築するか、new Workbook(filePath) または new Workbook(stream) を使用して既存の .xlsx をロードします。Workbook.Worksheets でシートをナビゲートし、Worksheet.Name と Worksheet.VisibilityType を設定し、Workbook.Save() で永続化します。破損したファイルの場合は、TryRepairPackage = true と TryRepairXml = true を備えた LoadOptions インスタンスを渡します。
using Aspose.Cells_FOSS;
var options = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
_ = new Workbook("sample.xlsx", options);
}
catch (WorkbookLoadException exception)
{
Console.WriteLine(exception.Message);
}
セル データと数式
Cell.PutValue() を使用してセルに値を書き込みます — オーバーロードは string、int、double,
decimal、bool、および DateTime を受け入れます。Cell.Value、Cell.StringValue、および
Cell.Formula を介して値を読み戻します。Cell.Formula プロパティで Excel の数式を設定します;数式文字列は
保存時に保持され、リロードサイクルでも残ります。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("hello.xlsx");
var loaded = new Workbook("hello.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].Formula);
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].StringValue);
セルのスタイリング
Style オブジェクトを適用して、フォント、塗りつぶし、罫線、数値形式、配置を制御します。Cell.GetStyle() で現在のスタイルを取得し、変更してからCell.SetStyle() でコミットします。背景の塗りつぶしには、Style.Pattern = FillPattern.Solid を設定し、Color をStyle.ForegroundColor に割り当てます。Cells.Merge() を使用してセル範囲を結合します。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var cell = workbook.Worksheets[0].Cells["A1"];
cell.PutValue("Styled");
var style = cell.GetStyle();
style.Font.Bold = true;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 241, 196, 15);
cell.SetStyle(style);
Console.WriteLine($"{cell.StringValue} / Bold={cell.GetStyle().Font.Bold}");
条件付き書式
ConditionalFormattingCollection を使用してセル範囲に条件付き書式ルールを添付します。
ルールは FormatConditionType.CellValue、Expression、ColorScale、DataBar、およびIconSet をサポートします。OperatorType を使用して比較演算子(Between、Equal、GreaterThan など)を指定し、一致したセルに Style を割り当て、優先順位と
true の場合に停止する動作をルールごとに構成します。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cfCollection = sheet.ConditionalFormattings[sheet.ConditionalFormattings.Add()];
cfCollection.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = cfCollection[cfCollection.AddCondition(
FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var style = rule.Style;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
style.Font.Bold = true;
rule.Style = style;
workbook.Save("conditional-formatting.xlsx");
データ検証
Worksheet.Validations を使用してセルに入力制約を追加します。サポートされている検証タイプには ValidationType.List、Decimal、Custom などがあります。入力プロンプト(InputTitle、InputMessage)とエラーメッセージ(ErrorTitle、ErrorMessage、ValidationAlertType)を構成します。CellArea.CreateCellArea() を使用して検証対象の範囲を定義し、Validation.AddArea() を使用して追加の範囲にルールを適用します。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Validation Sheet";
var listIdx = sheet.Validations.Add(CellArea.CreateCellArea("A1", "A3"));
var listVal = sheet.Validations[listIdx];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed\"";
listVal.IgnoreBlank = true;
listVal.InCellDropDown = true;
listVal.ShowInput = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Pick a status";
listVal.ShowError = true;
listVal.ErrorTitle = "Invalid";
listVal.ErrorMessage = "Choose from the list";
workbook.Save("validations-sample.xlsx");
ページ設定と印刷オプション
Worksheet.PageSetup を使用して印刷レイアウトを構成します。余白 (LeftMarginInch、RightMarginInch、TopMarginInch、BottomMarginInch)、Orientation、PaperSize、スケール、印刷領域、タイトル行と列、ヘッダーとフッター、ページ区切りを設定します。すべての設定は保存・読み込みの往復でも保持されます。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Print Sheet";
sheet.Cells["A1"].PutValue("Title");
var pageSetup = sheet.PageSetup;
pageSetup.Orientation = PageOrientationType.Landscape;
pageSetup.PaperSize = PaperSizeType.PaperA4;
pageSetup.PrintArea = "$A$1:$C$10";
pageSetup.PrintTitleRows = "$1:$2";
pageSetup.LeftHeader = "Left Header";
pageSetup.CenterFooter = "Center Footer";
pageSetup.PrintGridlines = true;
pageSetup.CenterHorizontally = true;
workbook.Save("page-setup-sample.xlsx");
ワークシート設定と保護
シートごとの表示を Worksheet.ShowGridlines、ShowRowColumnHeaders、ShowZeros、RightToLeft、Zoom、および TabColorで制御します。Worksheet.Protect()でシートを保護し、
細かく設定された Protection フラグ(Objects、FormatCells、InsertRows、AutoFilter、SelectLockedCells)を構成します。行の高さ、列の幅、非表示の行/列、そして
結合領域を Cells.Rows、Cells.Columns、および Cells.Merge()で管理します。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var layout = workbook.Worksheets[0];
layout.Name = "Layout";
layout.VisibilityType = VisibilityType.Hidden;
layout.TabColor = Color.FromArgb(255, 34, 68, 102);
layout.ShowGridlines = false;
layout.Zoom = 85;
layout.Protect();
layout.Protection.FormatCells = true;
layout.Protection.InsertRows = true;
layout.Cells["A1"].PutValue("Merged");
layout.Cells.Rows[1].Height = 22.5d;
layout.Cells.Columns[0].Width = 18.25d;
layout.Cells.Merge(0, 0, 2, 2);
workbook.Save("worksheet-settings-sample.xlsx");
ハイパーリンクと名前付き範囲
HyperlinkCollection.Add() を使用して、外部、内部、および mailto: ハイパーリンクを追加します。Hyperlink.TextToDisplay と Hyperlink.ScreenTip をユーザーが表示できるラベルとして設定します。DefinedNameCollection.Add() を使用して、ブックまたはシートのスコープで名前付き範囲を定義します — 名前付き範囲は、ファイルの再読み込み後も維持される安定した数式アンカーおよびチャートデータソースとして機能します。
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Docs");
var link = sheet.Hyperlinks[sheet.Hyperlinks.Add("A1", 1, 1, "https://example.com/docs")];
link.TextToDisplay = "Docs";
link.ScreenTip = "External documentation";
var name = workbook.DefinedNames[workbook.DefinedNames.Add("PrimaryRange", "='Sheet1'!$A$1:$D$5")];
name.Comment = "Primary data range";
workbook.Save("hyperlinks-names.xlsx");
Console.WriteLine("Hyperlinks: " + sheet.Hyperlinks.Count);
Console.WriteLine("Defined names: " + workbook.DefinedNames.Count);
クイックスタート
dotnet add package Aspose.Cells_FOSS
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("output.xlsx");
サポートされている形式
| 形式 | 拡張子 | 読み取り | 書き込み |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| 自動 | (様々) | ✓ | — |
オープンソースとライセンス
Aspose.Cells FOSS for .NET は MIT ライセンスの下で公開され、NuGet を通じてAspose.Cells_FOSS として配布されています。オープンソースと商用プロジェクトの両方に適しています。