欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)

程序员文章站 2023-12-13 11:31:10
前言 大家都知道,不少仪器工作站可xls文件和2007+的xl以将数据导出为excel文件,包括97-2003版本的sx文件。 采集excel文件相比采集pdf文件更容...

前言

大家都知道,不少仪器工作站可xls文件和2007+的xl以将数据导出为excel文件,包括97-2003版本的sx文件。

采集excel文件相比采集pdf文件更容易、程序更健壮,毕竟excel中数据有明确的行、列的定义,利于数据解析。

excel早期的xls文件和后来的xlsx文件的格式不一样,xls是二进制特定格式文件,xlsx是zip压缩包,其中数据使用xml定义。虽然两种文件格式定义不同,但解析文件数据可以通过中间件,因此只要理解了excel文件的工作簿、sheet页、行、列、单元格等概念即可,无需了解其文件的详细定义方式。

常用的采集excel文件数据的方式有:

      1.通过ole db的方式,将excel文件作为数据库进行查询来获取数据;

      2.使用ms excel应用程序来读取excel文件数据;

      3.使用wps应用程序来读取;

      4.使用其他office软件来读取;

      5.使用ms open xml来读取;

      6.使用npoi组件读取;

      7.……

方式有很多,但各有优劣,比如ms excel应用程序有版权的问题,wps等应用程序即使免费也需要安装,另外通过dcom调用应用程序需要配置权限;

无需应用程序的方式,可以通过npoi、ms open xml等方式,使用xml读取excel的组件一般仅支持excel 2007+,毕竟该版本的excel文件是xml的;

但npoi比较逆天,可以读取xls和xlsx文件,并且操作方式一致。

以下代码为打开excel文件,并读取其sheet页、行、单元格值:

filestream filestream = new filestream(filename, filemode.open, fileaccess.read);
xssfworkbook = new xssfworkbook(filestream);
isheet sheetat = xssfworkbook.getsheetat(num);
irow row = sheetat.getrow(rownum);
icell cell = row.cells[index];

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

上一篇:

下一篇: