C# EPPlus 日期格式生成警告
C# EPPlus date format generating warning
我的日期类似于 08/09/21,格式为 MM/dd/yy。当我通过 EPPlus 在 excel 中显示此日期时,会显示警告。
这是我使用的示例代码。我尝试了很多方法但没有运气。请看一下。
1)
ws.Cells[1 + 1].Value = Convert.ToDateTime(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).Date;
ws.Cells[1 + 1].Style.Numberformat.Format = "m/d/yy";
以上代码生成警告。
2)
ws.Cells[1 + 1].Value = Convert.ToDateTime(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).Date;
ws.Cells[1 + 1].Style.Numberformat.Format = "@";
以上代码生成警告。
我尝试了四种方式,但都没有用。所以我很困惑,无法理解我在哪里犯了错误。请提出一些建议,因为我需要在 excel 中显示日期,例如 08/09/21,即 MM/dd/yy 格式
谢谢
编辑
ws.Cells[r + 6, groupstartcol].Value = DateTime.Parse(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).ToString("MM/dd/yy");
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";
dtGroup 是数据table,日期来自数据库table,其中日期已存储为字符串。
我试了上面的代码,还是不行。我在这里粘贴了一个屏幕截图,可以帮助您理解问题。谢谢
您需要一个日期单元格,因此不要向其传递字符串值,而是传递一个 DateTime 并应用一种格式(这只会影响演示文稿,不会影响数据)。如果 dtGroup.Rows[r][dtGroup.Columns[c].ColumnName]
是 DateTime,你可以做
ws.Cells[r + 6, groupstartcol].Value =((DateTime)dtGroup.Rows[r][dtGroup.Columns[c].ColumnName]).Date;
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";
如果你有一个字符串:
ws.Cells[r + 6, groupstartcol].Value = DateTime.Parse(myString).Date;
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";
我的日期类似于 08/09/21,格式为 MM/dd/yy。当我通过 EPPlus 在 excel 中显示此日期时,会显示警告。
这是我使用的示例代码。我尝试了很多方法但没有运气。请看一下。
1)
ws.Cells[1 + 1].Value = Convert.ToDateTime(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).Date;
ws.Cells[1 + 1].Style.Numberformat.Format = "m/d/yy";
以上代码生成警告。
2)
ws.Cells[1 + 1].Value = Convert.ToDateTime(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).Date;
ws.Cells[1 + 1].Style.Numberformat.Format = "@";
以上代码生成警告。
我尝试了四种方式,但都没有用。所以我很困惑,无法理解我在哪里犯了错误。请提出一些建议,因为我需要在 excel 中显示日期,例如 08/09/21,即 MM/dd/yy 格式
谢谢
编辑
ws.Cells[r + 6, groupstartcol].Value = DateTime.Parse(dtGroup.Rows[r][dtGroup.Columns[c].ColumnName].ToString()).ToString("MM/dd/yy");
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";
dtGroup 是数据table,日期来自数据库table,其中日期已存储为字符串。
我试了上面的代码,还是不行。我在这里粘贴了一个屏幕截图,可以帮助您理解问题。谢谢
您需要一个日期单元格,因此不要向其传递字符串值,而是传递一个 DateTime 并应用一种格式(这只会影响演示文稿,不会影响数据)。如果 dtGroup.Rows[r][dtGroup.Columns[c].ColumnName]
是 DateTime,你可以做
ws.Cells[r + 6, groupstartcol].Value =((DateTime)dtGroup.Rows[r][dtGroup.Columns[c].ColumnName]).Date;
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";
如果你有一个字符串:
ws.Cells[r + 6, groupstartcol].Value = DateTime.Parse(myString).Date;
ws.Cells[r + 6, groupstartcol].Style.Numberformat.Format = "mm/dd/yy";