所以我使用 EPPlus 来读取和写入 Excel 文档。
Workflow
- 用户生成填充的 Excel 文档
- 打开文档并添加一行
- 已上传并已阅读
当我读回值时,使用 EPPlus 创建文档时生成的日期显示正确,但用户更改日期或添加的行显示为 INT 值,而不是我可以用作真实日期的值。
当我输入日期时2014年1月1日并写入它,打开文件时的输出显示41640
我正在阅读如下
sheet.Cells[i, "AE".ConvertExcelColumnIndex()].Value != null
? sheet.Cells[i, "AE".ConvertExcelColumnIndex()].Value.ToString().Trim()
: string.Empty
Update
导出文件时我添加了以下内容
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
...当我需要读取该 Excel 文件时,唯一的日期是
不正确的是用户更改的内容
那么,当您阅读修改后的 Excel 工作表时,修改后的日期是数字,而未更改的值是日期格式中的字符串?
你可以获得DateTime
via DateTime.FromOADate
:
long dateNum = long.Parse(worksheet.Cells[row, column].Value.ToString());
DateTime result = DateTime.FromOADate(dateNum);
与您的样品编号:
Console.Write(DateTime.FromOADate(41640)); // -> 01/01/2014
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)