im将几个数据列表带入单独的工作表。几张纸具有日期值,其中一些在基础数据列中为VARCHAR,其呈现为预期。其他是DateTime的基础,以一个数字显示在工作表中。我该如何告诉这些片段中的列格式为datetime
ExcelWorksheet wksht1 = pkg.Workbook.Worksheets.Add("WeeklySummary");
wksht1.Cells["A1"].LoadFromDataTable(dsResults.Tables["first"], true);
wksht1.Column(0).Style.Numberformat.Format = "yyyy-mm-dd";
wksht1.Column(1).Style.Numberformat.Format = "yyyy-mm-dd";
当我尝试时,我会得到异常
{"列数超出边界"}
我缺少什么
ExcelColumn
类实际上是基于1的,而不是基于0的类,就像epplus中的许多东西:
https://github.com/jankallman/epplus/blob/master/epplus/excelworksheet.cs#l1719
public ExcelColumn Column(int col)
{
CheckSheetType();
if (col < 1 || col > ExcelPackage.MaxColumns)
{
throw (new ArgumentException("Column number out of bounds"));
}
...
}
因此更改为:
wksht1.Column(1).Style.Numberformat.Format = "yyyy-mm-dd";
wksht1.Column(2).Style.Numberformat.Format = "yyyy-mm-dd";