Features

功能

Aspose.Cells FOSS for .NET 是一个纯托管的 .NET 库,用于创建、读取和修改 Excel XLSX 电子表格。入口点是 Workbook 类,提供对工作表、已定义名称以及保存/加载操作的访问。此页面概述了每个主要功能区域,并附有简短的代码示例。


工作簿 创建、加载 和 保存

使用 new Workbook() 创建一个新的工作簿。通过将文件路径传递给构造函数来加载现有的 XLSX 文件。使用 LoadOptions 启用容错加载。调用 Workbook.Save(path) 以持久化更改。

using Aspose.Cells_FOSS;

// New workbook
var wb = new Workbook();
wb.Worksheets[0].Cells["A1"].PutValue("Hello");
wb.Save("output.xlsx");

// Load with repair options
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
try
{
    var loaded = new Workbook("input.xlsx", opts);
    Console.WriteLine(loaded.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load failed: " + ex.Message);
}

单元格 数据 与 公式

使用 Cell.PutValue() 写入字符串、整数、小数、布尔值和 DateTime 值。设置 Cell.Formula 以分配兼容 Excel 的公式字符串。通过 Cell.StringValue 读取显示文本,通过 Cell.Value 读取原始值。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Qty");
ws.Cells["B1"].PutValue("Price");
ws.Cells["C1"].PutValue("Total");
ws.Cells["A2"].PutValue(10);
ws.Cells["B2"].PutValue(4.99m);
ws.Cells["C2"].Formula = "=A2*B2";

wb.Save("data.xlsx");

var loaded = new Workbook("data.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C2"].StringValue); // 49.9

单元格 样式

检索并修改任何具有 Cell.GetStyle() 和 Cell.SetStyle() 的单元格的 Style 对象。Style 类提供 Font(粗体、斜体、大小、名称)、ForegroundColor、Pattern(类型为 FillPattern)、HorizontalAlignment(使用 HorizontalAlignmentType)以及通过 Borders 的边框控制。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var cell = wb.Worksheets[0].Cells["A1"];
cell.PutValue("Styled Header");

var style = cell.GetStyle();
style.Font.Bold = true;
style.Font.Size = 14;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 198, 239, 206);
style.HorizontalAlignment = HorizontalAlignmentType.Center;
cell.SetStyle(style);

wb.Save("styled.xlsx");

条件格式

Worksheet.ConditionalFormattings 返回一个 ConditionalFormattingCollection。调用 Add() 创建规则集,然后 AddCondition() 使用 FormatConditionType 和 OperatorType 添加规则。支持的条件类型包括 CellValue、Expression、ColorScale、DataBar 和 IconSet。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 10; i++)
    ws.Cells[i, 0].PutValue(i + 1);

var ruleSet = ws.ConditionalFormattings[ws.ConditionalFormattings.Add()];
ruleSet.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = ruleSet[ruleSet.AddCondition(FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var ruleStyle = rule.Style;
ruleStyle.Pattern = FillPattern.Solid;
ruleStyle.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
rule.Style = ruleStyle;

wb.Save("cf.xlsx");

数据验证

Worksheet.Validations 返回一个 ValidationCollection。调用 Add(CellArea) 为单元格范围创建一个 Validation。使用 ValidationType(List、Decimal 或 Custom)设置 Type 属性。配置 Formula1、Formula2、Operator、InputTitle、InputMessage、ErrorTitle 和 ErrorMessage。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed,Pending\"";
listVal.InCellDropDown = true;

var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ShowError = true;

wb.Save("validation.xlsx");

自动筛选

Worksheet.AutoFilter 暴露了 AutoFilter 对象。设置 AutoFilter.Range 以定义标题行范围。访问 AutoFilter.FilterColumns(一个集合)并调用 Add(columnIndex) 在特定列上激活筛选。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Region");
ws.Cells["C1"].PutValue("Sales");
ws.Cells["A2"].PutValue("Alice"); ws.Cells["B2"].PutValue("North"); ws.Cells["C2"].PutValue(1200);

ws.AutoFilter.Range = "A1:C1";
ws.AutoFilter.FilterColumns.Add(1);

wb.Save("filter.xlsx");

超链接和已定义名称

Worksheet.Hyperlinks 是一个 HyperlinkCollection。调用 Add() 插入外部 URL、内部单元格引用或 mailto 链接。设置 Hyperlink.TextToDisplay 和 Hyperlink.ScreenTip 以供用户界面文字使用。Workbook.DefinedNames 是一个 DefinedNameCollection;调用 Add(name, refersTo) 创建命名范围。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Docs");
var link = ws.Hyperlinks[ws.Hyperlinks.Add("A1", 1, 1, "https://docs.aspose.org/cells/net/")];
link.TextToDisplay = "Documentation";

wb.DefinedNames[wb.DefinedNames.Add("DataRange", "Sheet1!$A$1:$D$10")].Comment = "Main data range";

wb.Save("links.xlsx");

页面设置

Worksheet.PageSetup 控制打印边距、方向、纸张大小、打印区域、标题行/列、页眉、页脚以及分页。使用 PageOrientationType 和 PaperSizeType 枚举。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ps = wb.Worksheets[0].PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.PrintArea = "$A$1:$H$50";
ps.CenterHeader = "My Report";
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(25);

wb.Save("paged.xlsx");

工作表管理

通过 WorksheetCollection 添加、重命名、隐藏和重新排序工作表。WorksheetCollection.Add(name) 返回新工作表的索引。使用 VisibilityType 设置 Worksheet.VisibilityType。使用 Cells.Merge() 合并单元格,并通过 Cells.Rows 和 Cells.Columns 控制行/列大小。

using Aspose.Cells_FOSS;

var wb = new Workbook();
wb.Worksheets[0].Name = "Summary";
var dataIdx = wb.Worksheets.Add("Data");
wb.Worksheets[dataIdx].VisibilityType = VisibilityType.Hidden;
wb.Worksheets.ActiveSheetName = "Summary";

var ws = wb.Worksheets["Summary"];
ws.Cells["A1"].PutValue("Title");
ws.Cells.Merge(0, 0, 1, 4);
ws.Cells.Rows[0].Height = 30d;
ws.Cells.Columns[0].Width = 20d;

wb.Save("worksheets.xlsx");

技巧与最佳实践

  • 在从用户提供的路径加载文件时,务必捕获 WorkbookLoadException。
  • 使用 Cell.PutValue() 时,请使用您打算存储的精确 .NET 类型——货币使用 decimal,日期使用 DateTime。
  • 读取 Cell.StringValue 以获取显示文本;当需要原始 .NET 对象时使用 Cell.Value。
  • 在所需的最宽范围上创建条件格式规则集——在大型工作表中,逐行规则的开销很大。
  • 在最后调用一次 wb.Save(),而不是在每次写入单元格后调用。

常见问题

问题原因修复
打开时的 WorkbookLoadExceptionXLSX 中的 ZIP 结构损坏设置 LoadOptions.TryRepairPackage = true
公式返回空的 StringValue加载时公式未重新计算在 Workbook.Save() 往返后访问 Cell.StringValue
超链接地址显示原始 URLTextToDisplay 未设置在 Add() 之后设置 Hyperlink.TextToDisplay
工作表标签不可见VisibilityType 设置为 Hidden设置 ws.VisibilityType = VisibilityType.Visible

FAQ

对于 .NET,Aspose.Cells 的 FOSS 版是否需要 Microsoft Office?

不需要。该库是纯托管代码,不依赖于 Office、Excel 或 COM 互操作。

支持哪些文件格式?

XLSX(读取和写入)。本版本不支持 CSV、ODS、PDF 和二进制 XLS。

我可以在商业应用中使用此库吗?

是的。Aspose.Cells FOSS 在 MIT 许可证下发布,允许无限制的商业使用且无需版税。

最低的 .NET 版本是多少?

.NET 6.0 或更高版本。

如何为单元格应用背景颜色?

设置 style.Pattern = FillPattern.Solid 和 style.ForegroundColor = Color.FromArgb(...),然后调用 cell.SetStyle(style)。


API Reference 摘要

类 / 方法描述
Workbook根类 — 创建、加载、保存工作簿
Workbook.Worksheets返回 WorksheetCollection
Workbook.Save(path)将工作簿保存到磁盘
Workbook.DefinedNames命名范围集合
Worksheet.Cells单元格网格访问
Worksheet.ConditionalFormattings条件格式规则集
Worksheet.Validations数据验证规则
Worksheet.AutoFilter自动筛选配置
Worksheet.Hyperlinks超链接集合
Worksheet.PageSetup打印布局设置
Cell.PutValue()写入带类型的单元格数据
Cell.FormulaExcel 兼容的公式字符串
Cell.GetStyle() / Cell.SetStyle()读取/写入单元格样式
Style.Pattern填充模式(FillPattern 枚举)
Style.HorizontalAlignment单元格对齐(HorizontalAlignmentType)
LoadOptions容错文件加载的选项

另请参阅

 中文