【发布时间】:2015-10-29 19:30:50
【问题描述】:
尝试以下方法:
string cellDataStr = row[col.ColumnName].ToString();
double cellDataD = 0;
Cell cell = new Cell();
if (double.TryParse(cellDataStr.Replace(',','.'), NumberStyles.Any, new NumberFormatInfo(), out cellDataD))
{
// data was parsed as double;
cell.DataType = new EnumValue<CellValues>(CellValues.Number);
cell.CellValue = new CellValue(cellDataStr);
}
else
{
// data was not parsed as double
cell.DataType = CellValues.String;
cell.CellValue = new CellValue(cellDataStr);
}
cellDataStr 可能是 353126,00。逗号是小数分隔符。
当我打开这个生成的文件时,Excel 会显示“我们在某些内容上遇到了问题,您希望我们尽可能多地恢复吗?”。
1、3254 和 8 等所有整数都可以。但是每个带小数点的数字,例如 15592,52、0,0600000、-15000,00 在单元格中都有这个绿色箭头,告诉我单元格中的数字存储为文本或以撇号开头。
如何将双精度值正确插入单元格?
【问题讨论】:
-
您是否尝试使用 Text 属性而不是 Value?