为什么没有将文本标签添加到这些单元格 (EPPlus)?
Why are the text labels not being added to these cells (EPPlus)?
我设置了一行 headers 列:
private static readonly int COLUMN_HEADER_ROW = 6;
private static readonly int COLUMN_COUNT = 15;
private static readonly int COLUMN_HEADER_ROW_HEIGHT = 48;
private static readonly int PLATYPUS_DISTRIBUTOR_COLUMN = 1;
private static readonly int RESTAURANT_LOCATION_COLUMN = 2;
private static readonly int RESTAURANT_LOCATION_COLUMN_WIDTH = 36;
private static readonly int TOTAL_PACKAGE_COUNT_COLUMN = 15;
. . .
// Add column headers
using (var rowRng = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN, COLUMN_HEADER_ROW, COLUMN_COUNT])
{
rowRng.Style.Font.Name = fontForSheet;
rowRng.Merge = true;
rowRng.Style.Font.Size = 12;
rowRng.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
rowRng.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
rowRng.Style.Fill.PatternType = ExcelFillStyle.Solid;
deliveryPerformanceWorksheet.Row(COLUMN_HEADER_ROW).Height = COLUMN_HEADER_ROW_HEIGHT;
rowRng.Style.Fill.BackgroundColor.SetColor(Color.LightSkyBlue);
// set borders
rowRng.Style.Border.BorderAround(ExcelBorderStyle.Thin);
rowRng.Style.Border.Top.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Left.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Right.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
}
然后我尝试向该行的每个单元格添加文本,如下所示:
// Col A
using (var distributorCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN])
{
distributorCell.Value = "Platypus Distributor";
distributorCell.Style.Font.Bold = true;
}
// Col B
using (var sunRestaurantLocationCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, RESTAURANT_LOCATION_COLUMN])
{
sunRestaurantLocationCell.Value = "Restaurant Location";
deliveryPerformanceWorksheet.Column(RESTAURANT_LOCATION_COLUMN).Width = RESTAURANT_LOCATION_COLUMN_WIDTH;
sunRestaurantLocationCell.Style.Font.Bold = true;
}
. . .
// Col O
using (var totalPackageCountHeaderCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, TOTAL_PACKAGE_COUNT_COLUMN])
{
totalPackageCountHeaderCell.Value = String.Format("Total Package{0}Count", Environment.NewLine);
totalPackageCountHeaderCell.Style.WrapText = true;
totalPackageCountHeaderCell.Style.Font.Bold = true;
}
...但是写入单元格的唯一值是 "Platypus Distributor" 并且它被放置在第 3 列而不是第 1 列中。
为什么只分配了一个文本值,为什么放在错误的地方cell/column?
简单地注释掉或删除"Merge"赋值,即这一行:
rowRng.Merge = true;
我设置了一行 headers 列:
private static readonly int COLUMN_HEADER_ROW = 6;
private static readonly int COLUMN_COUNT = 15;
private static readonly int COLUMN_HEADER_ROW_HEIGHT = 48;
private static readonly int PLATYPUS_DISTRIBUTOR_COLUMN = 1;
private static readonly int RESTAURANT_LOCATION_COLUMN = 2;
private static readonly int RESTAURANT_LOCATION_COLUMN_WIDTH = 36;
private static readonly int TOTAL_PACKAGE_COUNT_COLUMN = 15;
. . .
// Add column headers
using (var rowRng = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN, COLUMN_HEADER_ROW, COLUMN_COUNT])
{
rowRng.Style.Font.Name = fontForSheet;
rowRng.Merge = true;
rowRng.Style.Font.Size = 12;
rowRng.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
rowRng.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
rowRng.Style.Fill.PatternType = ExcelFillStyle.Solid;
deliveryPerformanceWorksheet.Row(COLUMN_HEADER_ROW).Height = COLUMN_HEADER_ROW_HEIGHT;
rowRng.Style.Fill.BackgroundColor.SetColor(Color.LightSkyBlue);
// set borders
rowRng.Style.Border.BorderAround(ExcelBorderStyle.Thin);
rowRng.Style.Border.Top.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Left.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Right.Style = ExcelBorderStyle.Thin;
rowRng.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
}
然后我尝试向该行的每个单元格添加文本,如下所示:
// Col A
using (var distributorCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN])
{
distributorCell.Value = "Platypus Distributor";
distributorCell.Style.Font.Bold = true;
}
// Col B
using (var sunRestaurantLocationCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, RESTAURANT_LOCATION_COLUMN])
{
sunRestaurantLocationCell.Value = "Restaurant Location";
deliveryPerformanceWorksheet.Column(RESTAURANT_LOCATION_COLUMN).Width = RESTAURANT_LOCATION_COLUMN_WIDTH;
sunRestaurantLocationCell.Style.Font.Bold = true;
}
. . .
// Col O
using (var totalPackageCountHeaderCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, TOTAL_PACKAGE_COUNT_COLUMN])
{
totalPackageCountHeaderCell.Value = String.Format("Total Package{0}Count", Environment.NewLine);
totalPackageCountHeaderCell.Style.WrapText = true;
totalPackageCountHeaderCell.Style.Font.Bold = true;
}
...但是写入单元格的唯一值是 "Platypus Distributor" 并且它被放置在第 3 列而不是第 1 列中。
为什么只分配了一个文本值,为什么放在错误的地方cell/column?
简单地注释掉或删除"Merge"赋值,即这一行:
rowRng.Merge = true;