Eu preciso processar os arquivos do Excel (2013). E o código a seguir é usado para ler as seqüências de células.
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
document.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true;
document.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
WorkbookPart wbPart;
WorksheetPart wsPart;
GetExcelSheet(sheetSearchPattern, document, out wbPart, out wsPart);
SharedStringTablePart sstpart = wbPart.GetPartsOfType<SharedStringTablePart>().First();
SharedStringTable sst = sstpart.SharedStringTable;
var rows = wsPart.Worksheet.Descendants<Row>();
//return rows.Select(r => r.Elements<Cell>().Select(c => getCellStr(wbPart, c)));
foreach (var row in rows)
{
var s = GetEnumerator(row).Select(c => getCellStr(wbPart, c));
yield return s;
}
}
No entanto, o código às vezes tem valores como 90000.0099999995
, 3.000000001
, enquanto o Excel mostra apenas 9000.01
e 3
. Existe uma maneira de ler o número armazenado real no Excel?
Parece que o valor real armazenado no arquivo xlsx do Excel é 90000.0099999995, mas o Excel sempre o exibe como 90000.01, independentemente de como você altera o formato de exibição. Existe uma maneira de obter o valor bruto subjacente no Excel?
Tags microsoft-excel