Openxml 读取指定列的数据
来源:互联网 发布:深度解析淘宝运营pdf 编辑:程序博客网 时间:2024/05/29 17:32
在这个示例中指定"A","B","C"为需要读取的列。
using System.Windows.Forms;using DocumentFormat.OpenXml.Packaging;using DocumentFormat.OpenXml.Spreadsheet;using System.Text.RegularExpressions;namespace ConsoleApplication13{ class Program { [STAThread] static void Main(string[] args) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel Document|*.xlsx"; ofd.Multiselect = false; ofd.ShowDialog(); string path = ofd.FileName; List<string> C = new List<string>(); C.Add("A"); C.Add("B"); C.Add("C"); Dictionary<string, List<object>> result = new Dictionary<string, List<object>>(); result.Add("A", new List<object>()); result.Add("B", new List<object>()); result.Add("C", new List<object>()); using (SpreadsheetDocument sd = SpreadsheetDocument.Open(path, false)) { WorkbookPart wp = sd.WorkbookPart; Sheet sheet = wp.Workbook.Descendants<Sheet>() .Where(s => s.Name == "Sheet1").FirstOrDefault(); WorksheetPart wsp = wp.GetPartById(sheet.Id) as WorksheetPart; SharedStringTablePart sstp = wp.GetPartsOfType<SharedStringTablePart>() .FirstOrDefault(); SharedStringTable sst = sstp.SharedStringTable; List<SharedStringItem> alph = sst.Descendants<SharedStringItem>() .ToList(); if (wsp != null) { Worksheet ws = wsp.Worksheet; SheetData sda = ws.Descendants<SheetData>().FirstOrDefault(); List<Row> rows = sda.Descendants<Row>().ToList(); foreach (Row row in rows) { List<Cell> cells = row.Descendants<Cell>().ToList(); foreach (Cell cell in cells) { Regex rege = new Regex("([A-Z]{1,3})"); MatchCollection Matchs = rege .Matches(cell.CellReference.Value); switch (Matchs[0].Value) { case "A": result["A"].Add(GetValue(cell, ref alph)); break; case "B": result["B"].Add(GetValue(cell, ref alph)); break; case "C": result["C"].Add(GetValue(cell, ref alph)); break; } } } Console.WriteLine("=====================A================="); ShowValue(result["A"]); Console.WriteLine("=====================B================="); ShowValue(result["B"]); Console.WriteLine("=====================C================="); ShowValue(result["C"]); Console.ReadKey(); } } } private static void ShowValue(List<object> list) { foreach (object i in list) { Console.WriteLine(string.Format("{0}", i)); } } private static object GetValue(Cell cell, ref List<SharedStringItem> alph) { object result = null; if (cell.DataType != null && cell.DataType == CellValues.SharedString) { result = alph[int.Parse(cell.CellValue.Text)].Text.Text; } else { result = cell.CellValue.Text; } return result; } }}
- Openxml 读取指定列的数据
- 数据库:读取指定表的所有列名&读取指定表某一列的所有数据
- OpenXml方式读取Excel数据
- R读取大数据--仅读取指定列
- sp_xml_preparedocument OPENXML sp_xml_removedocument截取XML片段或指定格式的数据
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- pandas读取csv文件的指定列
- python读取excel指定列数据并写入到新的excel
- scala读取指定列
- 获取DataTable指定列的数据
- 锁住Grid数据窗口的指定列
- 用OpenXml从Presentation的表中移处/添加列
- ORACLE数据库导出指定表、指定列的数据
- Easy UI DataGrid获取指定行指定列的数据
- 读取excel大于Z列的数据
- 使用pandas读取csv文件的指定列
- java读取Excel指定格式的数据
- 十个简单好用的设计技巧
- OpenSUSE12.1中文输入法设置
- Iphone开发UILable和UITextField
- vold study
- 一个程序员的时间管理
- Openxml 读取指定列的数据
- UITableView 一些方法
- 华为笔试经验 .
- 浅谈HOOK技术在VC编程中的应用 .
- 坚决支持国家在主权问题的立场
- 设计模式学习笔记——享元模式
- 我所收藏的重点大学BBS资源 .
- javascript Range对象跨浏览器常用操作
- CString ,BSTR ,LPCTSTR之间关系和区别 .