首页 > 编程语言 >C#使用 OpenXML SDK读取Excel文档

C#使用 OpenXML SDK读取Excel文档

时间:2022-09-27 23:35:07浏览次数:45  
标签:C# text Excel 文档 using OpenXML SharedStringTable

       Excel的文档,本身就是一个压缩包,使用压缩工具打开一个excel文件,可以看到里边的文件列表如下图:

C#使用 OpenXML SDK读取Excel文档_xml

C#使用 OpenXML SDK读取Excel文档_文件路径_02

       里边的文件主要就是一些xml文件和其他的素材

       OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。

       下边列举一下,如何使用OpenXML读取一个Excel文档中的内容:

        首先,使用nuget安装OpenXML的类库引用,也可以从网上直接下载类库进行引用;

C#使用 OpenXML SDK读取Excel文档_xml_03

        添加命名空间

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
使用代码打开一个Excel文档
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open("文件路径", false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
//选择Excel的sheet页,和Excel中的实际顺序对应
WorksheetPart worksheetPart = workbookPart.WorksheetParts.ElementAt(1);
//sheet页中的内容
SheetData _Sheet1data = worksheetPart.Worksheet.Elements<SheetData>().First();
//有些Excel中的标题等中英文内容会放在SharedStringTable中
var _sharepart = workbookPart.SharedStringTablePart;
//循环Excel表中的行数据
foreach (Row r in _Sheet1data.Elements<Row>())
{
//行数据中的每个Cell中数据
foreach (Cell c in r.Elements<Cell>())
{
string text = c.CellValue.Text;
//判断是不是在SharedStringTable中
if (c.DataType != null)
{
var _xmlpart = _sharepart.SharedStringTable.ElementAt(Convert.ToInt32(c.CellValue.Text));
text = _xmlpart.FirstChild.InnerText;
}
//最终获得text数据
}
}

标签:C#,text,Excel,文档,using,OpenXML,SharedStringTable
From: https://blog.51cto.com/speciallist/5717779

相关文章

  • C++语言程序设计基础 内联函数
    C++内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。对内联函数进行任何修改,都需要重新编译函数......
  • C# implicit隐式转换
    今天看书,上面介绍implicit和explicit相对冷门,用的较少。这个implicit类型虽然冷门,但真的很有用。我在自己的项目里就用了这个上Demo,1publicpartialclassMainW......
  • docker命令自动补全
    1、安装bash-completionyuminstall-ybash-completion2、重新连接docker服务器使docker补全命令生效,或者建立新的远程连接docker服务器。输入dockerpu,再Tab键两......
  • docker 创建镜像images
    1.先下载基础镜像,并准备好你要部署的jar包 2.编写dockerfile 文件FROMascdc/jdk8:latestRUNmkdir-p/home/app/demo&&chmod777/home/app/demo&&cd/home......
  • English words chapter 20220927
    ......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基础要求执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图开启MininetCLI并执行pingall命令的截图上述目录下查看OVS流表的命令结果截图wireshark......
  • copy2word
    ;Thisscriptcreatesanewdocumenttoholdstufffromtheclipboard.;Thisscriptcreatesanewdocumenttoholdstufffromtheclipboard.;Usage;-Hig......
  • tomcat
    tomcat目录一.简介二.部署tomcat一.简介Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍......
  • JavaWeb5 JDBC
       packagecom.itheima.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLOutput;importjava.sql.Statement;publi......
  • 四、typescript类属性的封装
    类属性的封装:通过属性的修饰符实现private:只有在类的内部进行访问和修改public:可以在任意位置访问和修改。默认时publicprotected:可以在当前类和当前类的子类中访问......