从数据表加载的工作表,然后格式化列作为日期导致例外



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

最新更新