打开xml sdk读取数字和date时间/数字值

我正在使用Open XML SDK 2.0来读取excel文件。 该文件包含如下信息。

Number DataFound摘要

10 2012-12-12 abslsoddsdls

20 2012-11-12 sllsdislkdrr

当我使用Open XML SDK从文件中获取数据时,我总是获取单元格的数据types为string(共享string)。我需要获取数据types,因为它在Excel文件中。 看看我的代码如下。 任何想法如何获得单元格的数据types,因为它是在Excel文件中?

SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(dataStream, false); WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart; IEnumerable<Sheet> sheets = spreadSheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>(); string relationshipId = sheets.First().Id.Value; WorksheetPart worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId); Worksheet workSheet = worksheetPart.Worksheet; SheetData sheetData = workSheet.GetFirstChild<SheetData>(); IEnumerable<Row> rows = sheetData.Descendants<Row>(); foreach (Cell cell in rows.ElementAt(0)) { dt.Columns.Add(GetCellValue(spreadSheetDocument, cell)); } foreach (Row row in rows) //this will also include your header row... { DataRow tempRow = dt.NewRow(); for (int i = 0; i < row.Descendants<Cell>().Count(); i++) { tempRow[i] = GetCellValue(spreadSheetDocument, row.Descendants<Cell>().ElementAt(i )); } dt.Rows.Add(tempRow); } dt.Rows.RemoveAt(0); public static string GetCellValue(SpreadsheetDocument document, Cell cell) { SharedStringTablePart stringTablePart = document.WorkbookPart.SharedStringTablePart; string value = cell.CellValue.InnerXml; if (cell.DataType != null && cell.DataType.Value == CellValues.SharedString) //cell.DataType is always SharedString! { return stringTablePart.SharedStringTable.ChildElements[Int32.Parse(value)].InnerText; } else { return value; } }