Aspose.Cells FOSS for .NET 的使用案例

Aspose.Cells FOSS for .NET 的使用案例

Aspose.Cells FOSS for .NET 是一个纯托管的 .NET 库,可读取和写入 XLSX 文件,无需 Microsoft Office 或任何外部依赖。以下用例说明了该库在实际 .NET 应用程序中的适用场景。


报告生成

在服务器端或批处理应用程序中以编程方式生成 XLSX 报告。使用 WorkbookWorksheetCell.PutValue() 写入结构化数据,然后调用 Workbook.Save() 生成文件。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Name = "Monthly Report";

ws.Cells["A1"].PutValue("Product");
ws.Cells["B1"].PutValue("Revenue");

ws.Cells["A2"].PutValue("Widget A");
ws.Cells["B2"].PutValue(12500.00m);

ws.Cells["A3"].PutValue("Widget B");
ws.Cells["B3"].PutValue(8750.00m);

ws.Cells["B4"].Formula = "=SUM(B2:B3)";

wb.Save("monthly-report.xlsx");

此模式可扩展至任意行数,并且可以由数据库或 API 响应中的数据驱动。


处理已上传的电子表格

读取并验证用户通过网页表单或 API 端点提交的 XLSX 文件。Workbook 构造函数接受 Stream,因此无需将临时文件写入磁盘。

using Aspose.Cells_FOSS;

// IFormFile from ASP.NET Core controller
public async Task<IActionResult> Upload(IFormFile file)
{
    using var stream = file.OpenReadStream();
    var opts = new LoadOptions { TryRepairPackage = true };
    var wb = new Workbook(stream, opts);

    var ws = wb.Worksheets[0];
    var firstRow = ws.Cells["A1"].StringValue;
    // ... validate and process rows

    return Ok(new { sheets = wb.Worksheets.Count, firstCell = firstRow });
}

使用 LoadDiagnostics.HasRepairs 检测需要结构修复的文件,并向用户展示该信息。


数据管道提取

从第三方系统生成的 XLSX 导出文件中提取单元格数据,并将值输入到数据库或下游服务。使用行列坐标通过 Cell.StringValueCell.Value 读取单元格值。

using Aspose.Cells_FOSS;

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

var records = new List<(string sku, double qty)>();
for (int row = 1; row <= 100; row++) // iterate known data range
{
    var sku = ws.Cells[row, 0].StringValue;
    if (string.IsNullOrEmpty(sku)) break;
    var qty = (double)ws.Cells[row, 1].Value;
    records.Add((sku, qty));
}

Console.WriteLine($"Extracted {records.Count} records");

在保存之前应用数据验证

在向最终用户交付 XLSX 模板之前,添加下拉列表或范围验证规则,确保他们仅填写可接受的值。

using Aspose.Cells_FOSS;

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

// Status column: dropdown
var statusVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A2", "A100"))];
statusVal.Type = ValidationType.List;
statusVal.Formula1 = "\"Open,In Progress,Closed\"";
statusVal.InCellDropDown = true;

// Score column: 0–10 decimal range
var scoreVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B2", "B100"))];
scoreVal.Type = ValidationType.Decimal;
scoreVal.Operator = OperatorType.Between;
scoreVal.Formula1 = "0";
scoreVal.Formula2 = "10";
scoreVal.ShowError = true;

wb.Save("template-with-validation.xlsx");

为可读性进行输出样式化

应用单元格样式——字体、填充颜色、数字格式、边框——以生成精致的输出。直接创建 Style 实例,配置其属性,并使用 Cell.SetStyle() 应用它。

using Aspose.Cells_FOSS;

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

// Header style
var headerStyle = new Style();
headerStyle.Font.IsBold = true;
headerStyle.Font.Size = 12;
headerStyle.ForegroundColor = System.Drawing.Color.FromArgb(0x4F, 0x81, 0xBD);
headerStyle.Pattern = FillPattern.Solid;

ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Score");
ws.Cells["A1"].SetStyle(headerStyle);
ws.Cells["B1"].SetStyle(headerStyle);

// Number format for score column
var numStyle = new Style();
numStyle.Custom = "0.00";
ws.Cells["B2"].SetStyle(numStyle);
ws.Cells["B2"].PutValue(98.5m);

wb.Save("styled-report.xlsx");

另请参阅

 中文