C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)
前言
大家都知道,不少仪器工作站可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];
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。