我有一个带日期的CSV文件(“MM / DD / YYYY”)。我希望在活动工作表中将这些值解析为字符串值,但它们将转换为数字格式(即“22532”)。我无法以原始字符串格式获取这些值。
CellSelection selection = sheet.Cells[0, 0];
ICellValue value = selection.GetValue().Value;
是否可以确保所有单元格值都是String格式,准确表示它们在CSV文件中的位置?
答案 0 :(得分:1)
您可以使用以下代码:
CellSelection selection = sheet.Cells[0, 0];
string value = selection.GetValue().Value.GetResultValueAsString(new CellValueFormat("mm/d/yyyy"));
这将返回格式化为日期的字符串。在“22532”的情况下,结果将是“09/8/1961”。
答案 1 :(得分:0)
这不是您正在寻找的确切答案,但您可以使用以下代码将int值转换为日期时间:
public static DateTime FromExcelSerialDate(this int serialDate)
{
if (serialDate > 59) serialDate -= 1; //Excel/Lotus 2/29/1900 bug
return new DateTime(1899, 12, 31).AddDays(serialDate);
}