我需要根据客户要求设置Excel列名称。例如。 “自动装运案例”,“安全库存案例”,但是运行以下代码时出现错误。
project.dll中发生类型'System.NullReferenceException'的异常,但未在用户代码中处理 对象引用未设置为对象的实例。
我该如何解决?
//Create the WorkSheet
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("VIL");
//get column names
string[] columnNames =
{"Item2",
"Autoship Cases",
"Safety Stock Cases",
"TotalCases",
"QtyPerCase",
"Title",
"Job",
"Item1",
"CartonNumber",
"PrintQuantity"
};
// get table data
var records = db.BinderyLabels
.Where(r => r.UserId == user.Id)
.Select(p => new
{
Item2 = p.Item2 ?? "",
AutoshipCases = p.AutoshipCases ?? 0,
SafetyStockCases = p.SafetyStockCases ?? 0,
TotalCases = p.TotalCases ?? 0,
QtyPerCase = p.QtyPerCase ?? 0,
Title = p.Title ?? "",
Job = p.Job ?? "",
Item1 = p.Item1 ?? "",
CartonNumber = p.CartonNumber ?? 0,
PrintQuantity = p.PrintQuantity ?? 0
});
int i = 0;
//Adding column name to worksheet
foreach (var col in columnNames)
{
i++;
worksheet.Cells[1, i].Value = col;
}
//Adding records to worksheet
int j;
int t = 2;
foreach (var rec in records)
{
for (j = 0; j < columnNames.Length; j++)
{
worksheet.Cells[t, j + 1].Value = rec.GetType().GetProperty(columnNames[j].ToString()).GetValue(rec, null);
}
t++;
}