我将在我的.Net Core项目中使用EPPlus.Core生成excel报告。因此,在挖掘Google找到一些示例代码片段后,我找到了以下博客:
在 C# 中创建 Excel 文件
我可以使用以下代码创建一个带有单个标头的 excel 文件:
using (ExcelPackage excel = new ExcelPackage())
{
excel.Workbook.Worksheets.Add("Worksheet1");
excel.Workbook.Worksheets.Add("Worksheet2");
excel.Workbook.Worksheets.Add("Worksheet3");
var headerRow = new List<string[]>()
{
new string[] { "ID", "First Name", "Last Name", "DOB" }
};
// Determine the header range (e.g. A1:D1)
string headerRange = "A1:" + Char.ConvertFromUtf32(headerRow[0].Length + 64) + "1";
// Target a worksheet
var worksheet = excel.Workbook.Worksheets["Worksheet1"];
// Popular header row data
worksheet.Cells[headerRange].LoadFromArrays(headerRow);
FileInfo excelFile = new FileInfo(@"C:UsersamirDesktoptest.xlsx");
excel.SaveAs(excelFile);
}
但是我找不到如何在单个工作表上添加多个标题行。例如,第一个表具有 ID、名称、价格标头,第二个表具有注释和价格标头。是否可以使用 EPPlus.Core 将多个表添加到工作表中?上面的代码片段仅将一个标题行从 A1 添加到 D1。假设我想将另一个标题行从 A4 添加到 J4。有什么建议吗?
然而我找到了答案。希望这能帮助其他人节省时间。这不是最好的方法,但这是我所需要的。我通过添加"A1:J1"和"A3:E3"来定义 Cells 数组上的坐标。
var worksheet = excel.Workbook.Worksheets["Worksheet1"];
worksheet.Cells["A1:J1"].LoadFromArrays(header1Data);
worksheet.Cells["A1:J1"].Style.Font.Bold = true;
worksheet.Cells[2, 1].LoadFromArrays(array1Data);
worksheet.Cells["A3:E3"].LoadFromArrays(header2Data);
worksheet.Cells["A3:E3"].Style.Font.Bold = true;
worksheet.Cells[4, 1].LoadFromArrays(array2Data);