gpt4 book ai didi

c# - 使用 EPPlus 返回 INT 的 Excel 日期列

转载 作者:IT王子 更新时间:2023-10-29 04:30:06 26 4
gpt4 key购买 nike

所以我正在使用 EPPlus 来读写 excel 文档。

工作流程

  • 用户生成填充的 excel 文档
  • 打开文档并添加一行
  • 已上传并阅读

当我读回值时,我使用 EPPlus 创建文档时生成的日期正确显示,但用户更改日期 one 或添加的行显示为 INT 值,而不是我可以用作真实值的东西日期。

当我输入日期 1/01/2014 并写入时,打开文件时的输出显示 41640

我是这样读的

sheet.Cells[i, "AE".ConvertExcelColumnIndex()].Value != null
? sheet.Cells[i, "AE".ConvertExcelColumnIndex()].Value.ToString().Trim()
: string.Empty

更新

导出文件时我添加了以下内容

DateTime testDate;

if (DateTime.TryParse(split[i], out testDate))
{
sheet.Cells[row, i + 1].Style.Numberformat.Format = "MM/dd/yyyy";
sheet.Cells[row, i + 1].Value = testDate.ToString("MM/dd/yyyy");
}

同样在读回我尝试过的值时

sheet.Cells[i, "AE".ConvertExcelColumnIndex()].Style.Numberformat.Format = "MM/dd/yyy";

我仍然得到一个 INT

最佳答案

...when I need to read that excel file, the only dates that are incorrect are the ones the user has changed

因此,当您阅读修改后的 Excel 工作表时,修改后的日期是数字,而未更改的值是日期格式中的字符串?

您可以通过 DateTime.FromOADate 获取 DateTime:

long dateNum = long.Parse(worksheet.Cells[row, column].Value.ToString());
DateTime result = DateTime.FromOADate(dateNum);

使用您的 sample 编号:

Console.Write(DateTime.FromOADate(41640)); // ->  01/01/2014 

关于c# - 使用 EPPlus 返回 INT 的 Excel 日期列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24933947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com