Я читаю файл Excel, используя openXML SDK.В некоторых ячейках Excel содержится формула, я хочу прочитать значение ячейки, но когда я использую приведенный ниже код, он выводит мне формулу.Как получить значение.
WorksheetPart wsPart = (WorksheetPart)(wbPart.GetPartById(theSheet.Id));
using(SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
WorkbookPart wbPart = document.WorkbookPart;
Sheet theSheet = wbPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheetName).FirstOrDefault();
WorksheetPart wsPart = (WorksheetPart)(wbPart.GetPartById(theSheet.Id));
Cell theCell = wsPart.Worksheet.Descendants<Cell>().Where(c => c.CellReference == "D16").FirstOrDefault();
value = theCell.InnerText;
}
Здесь я читаю конкретную ячейку "D16", которая содержит формулу.
Нужна еще одна помощь, не в состоянии прочитать дату для ячейки.Я получаю какой-то номер.Для ячейки даты тип данных является нулевым, поэтому приведенный ниже код не работает.КАК я получу дату из клетки
if (theCell != null)
{
value = theCell.CellValue.InnerText;
if (theCell.DataType != null)
{
switch (theCell.DataType.Value)
{
case CellValues.SharedString:
var stringTable = wbPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault();
if (stringTable != null)
{
value = stringTable.SharedStringTable.ElementAt(int.Parse(value)).InnerText;
}
break;
case CellValues.Boolean:
switch (value)
{
case "0":
value = "FALSE";
break;
default:
value = "TRUE";
break;
}
break;
}
}
}