OpenXml 2.0 读取Excel
2024-10-20 16:34:35
Excel 单元格中的数据类型包括7种:
Boolean、Date、Error、InlineString、Number、SharedString、String
读取源代码:
List<string> returnList = new List<string>();
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filename, false))
{
foreach (Sheet sheet in spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>())
{
returnList.Add(sheet.Name);
} foreach (Sheet sheet in spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>())
{
IEnumerable<Sheet> IEnumerableSheet = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheet.Name);
WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(IEnumerableSheet.First().Id);
IEnumerable<Row> rows = worksheetPart.Worksheet.Descendants<Row>();
SharedStringTable sharedStringTable = spreadsheetDocument.WorkbookPart.SharedStringTablePart.SharedStringTable;
foreach (Row row in rows)
{
foreach (Cell cell in row.Descendants<Cell>())
{
if (cell.ChildElements.Count == )
{ }
else
{
if (cell.DataType != null)
{
//获取其中共享数据类型
if (cell.DataType.Value == CellValues.SharedString)
{
string cellValue = sharedStringTable.ChildElements[int.Parse(cell.CellValue.InnerText)].InnerText;
returnList.Add(cellValue);
}
}
} }
}
}
return returnList;
}
其中Bool类型数据0会处理为False 1处理成True;
其中最不好处理的数据就是时间Date;
因为工作需要,目前只处理共享数据
最新文章
- svg.js教程及使用手册详解(二)
- Linux 查看文件内容
- html跳转倒计时
- 【转】GitHub 中国区前 100 名到底是什么样的人?
- 【HeadFirst设计模式】9.迭代器与组合模式
- 实现Bootstrap Carousel Fade Transition 淡入淡出效果
- go pprof
- 24位和8位BMP图片保存纯C代码
- 改动symbol link的owner
- Python3.6 运行提示 ImportError: cannot import name &#39;CONFIG_FILE&#39;
- codeforces231C
- 【转】Java并发编程:阻塞队列
- [CB]2018年中国智能手机市场出货量
- PHP乘法表
- (转)How to Use Elasticsearch, Logstash, and Kibana to Manage MySQL Logs
- BeyondCompare
- Promise 初步
- Redis学习笔记(6)——SpringDataRedis入门
- BZOJ 2654: tree(二分 最小生成树)
- python学习笔记(二)python基础知识(list,tuple,dict,set)