EPPLUS ExcelRange 从错误的行开始创建表格

问题描述

在 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;

enter image description here

解决方法

Excel 本身可以工作,因此如果您选择 A2:C4 并创建一个表格并说“没有标题”,它将在 A2:C2 中放置一些通用标题并移动数据区域(如果有任何)到A2:C5

如果您说“有标题”,标题也将在 A2:C2 中定义,但数据仅在 A3:C4 中。

真正的 Excel 显然会猜测标题是否存在,并为您预先勾选框。

here in the API Documentation 所述,没有标志来定义标题是否存在于范围内,因此可能没有猜测,可能会假设它是“否”,并且会发生顶部解释的转换。

如果你考虑到这一点,你应该能够解决这个问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...