问题描述
在 C# 中,我用数据填充了一个 excel 文件。现在我想创建一个从单元格 A2 开始的表格。 我使用下面的代码来创建表格,但不是从单元格 A2 开始创建表格,而是从单元格 A3 开始创建表格
using var package = new ExcelPackage(file);
var ws = package.Workbook.Worksheets.Add(Name: "MainReport");
var range = ws.Cells[Address: "A2"].LoadFromCollection(people,PrintHeaders: true);
range.AutoFitColumns();
//Formats Header row
ws.Cells[Address: "A1"].Value = "My Data!";
ws.Cells[Address: "A1:C1"].Merge = true;
ws.Column(col: 1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Row(row: 1).Style.Font.Size = 24;
ws.Row(row: 1).Style.Font.Color.SetColor(Color.Pink);
ws.Row(row: 2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Row(row: 2).Style.Font.Bold = true;
ws.Column(col: 3).Width = 20;
//create a range for the table
ExcelRange range_table = ws.Cells[2,1,ws.Dimension.End.Row,ws.Dimension.End.Column];
//add a table to the range
ExcelTable tab = ws.Tables.Add(range_table,"Table1");
//format the table
tab.TableStyle = TableStyles.Medium2;
解决方法
Excel 本身可以工作,因此如果您选择 A2:C4
并创建一个表格并说“没有标题”,它将在 A2:C2
中放置一些通用标题并移动数据区域(如果有任何)到A2:C5
。
如果您说“有标题”,标题也将在 A2:C2
中定义,但数据仅在 A3:C4
中。
真正的 Excel 显然会猜测标题是否存在,并为您预先勾选框。
如 here in the API Documentation 所述,没有标志来定义标题是否存在于范围内,因此可能没有猜测,可能会假设它是“否”,并且会发生顶部解释的转换。
如果你考虑到这一点,你应该能够解决这个问题。