在C#中使用Aspose.Cells获取Excel中的数据时,如果Excel设置了小数数位为0,则在Excel中看不到小数点后的数据,但是对应的该
数值的小数位上是有数据的。这时候使用Aspose.Cells获取值时,用Cell[row][column].StringValue只能获得没有小数位的值。我
想知道的是如何获得该位置上的真实值,即带小数位的数值(前提是不修改当前的Excel表格),我想把这个值存入数据库中。谢谢!
Aspose.Cells.Workbook oBook = new Aspose.Cells.Workbook(excelPath);
Aspose.Cells.Worksheet osheet = oBook.Worksheets[0];
float value = osheet.Cells[1, 0].FloatValue;//读取某个数值单元格
上述代码可以满足楼主要求,不用修改excel文件
呃,谢谢,我自己解决了。不过你的方法也是正确的,谢谢了哈!
@paluano: 神经的,解决了也不讲一下解决方案。
@binston huang:
在获取值之前调用 一下
workbook.CalculateFormula();
workbook.CalculateFormula();
for (int row = 0; row < worksheet.Cells.MaxDataRow + 1; row++)
{
for (int column = 0; column < worksheet.Cells.MaxDataColumn + 1; column++)
{
Cell c = worksheet.Cells[row, column];
string val_str = c.StringValue;
}
}