我正在使用OpenXML将数据从网站导出到Excel。我有一些文本字段(例如Project Infos)和许多需要导出的小数值。导出文本值没有问题,但是只要我想添加小数值就会启动我的电子表格,当我在Excel 2013中打开它时它会说
“您要打开的speadsheet包含错误”。
我可以打开它并且值在那里但是它们被保存为文本而不是数字 当我将十进制值定义为文本值时,没有错误。我添加小数值的代码是这样的:
private Cell createDecimalCell(int columnIndex, int rowIndex, decimal value, UInt32Value cellStyleIndex)
{
Cell cell = new Cell();
cell.CellReference = getColumnName(columnIndex) + rowIndex;
cell.CellValue = new CellValue();
cell.CellValue.Text = value.ToString();
if (cellStyleIndex.HasValue)
cell.StyleIndex = cellStyleIndex;
return cell;
}
电话看起来有点像这样:
cell = createDecimalCell(index, rowIndex, 12.3M, CellFormats["BasicDecimal"]);
CellFormats只是一个List,在电子表格中包含我自己定义的所有CellFormatsIds。 CellFormats [“BasicDecimal”]被定义为一个单元格格式,其中Arial为字体,10pts为fontsize,没有粗体或任何东西,以及带有1位小数的自创编号格式。 我已经尝试将单元格的数据类型定义为CellValues.Number,但它没有帮助。经过大量的搜索和尝试后,即使MS网站没有帮助,我也没有找到解决方案。