码迷,mamicode.com
首页 > 其他好文 > 详细

OpenXml 2.0 读取Excel

时间:2015-01-16 16:28:32      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

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                             else
24                             {
25                                 if (cell.DataType != null)
26                                 {
27                                      //获取其中共享数据类型
28                                     if (cell.DataType.Value == CellValues.SharedString)  
29                                     {
30                                        string cellValue = 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

标签:

原文地址:http://www.cnblogs.com/QQ931697811/p/4228775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!