首页 > 代码库 > OpenXml 2.0 读取Excel

OpenXml 2.0 读取Excel

Excel 单元格中的数据类型包括7种:

Boolean、Date、Error、InlineString、Number、SharedString、String

读取源代码:

 1 List<string> returnList = new List<string>(); 2             using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filename, false)) 3             { 4                 foreach (Sheet sheet in spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>()) 5                 { 6                     returnList.Add(sheet.Name); 7                 } 8  9                 foreach (Sheet sheet in spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>())10                 {11                     IEnumerable<Sheet> IEnumerableSheet = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheet.Name);12                     WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(IEnumerableSheet.First().Id);13                     IEnumerable<Row> rows  = worksheetPart.Worksheet.Descendants<Row>();14                     SharedStringTable sharedStringTable = spreadsheetDocument.WorkbookPart.SharedStringTablePart.SharedStringTable;15                     foreach (Row row in rows)16                     {17                         foreach (Cell cell in row.Descendants<Cell>())18                         {19                             if (cell.ChildElements.Count == 0)20                             {21 22                             }23                             else24                             {25                                 if (cell.DataType != null)26                                 {27                                      //获取其中共享数据类型28                                     if (cell.DataType.Value =http://www.mamicode.com/= CellValues.SharedString)  29                                     {30                                        string cellValue = http://www.mamicode.com/sharedStringTable.ChildElements[int.Parse(cell.CellValue.InnerText)].InnerText;31                                        returnList.Add(cellValue);32                                     }33                                 }34                             }35 36                         }37                     }38                 }39                 return returnList;40             }

其中Bool类型数据0会处理为False 1处理成True;

其中最不好处理的数据就是时间Date;

因为工作需要,目前只处理共享数据

OpenXml 2.0 读取Excel