zoukankan      html  css  js  c++  java
  • C#仪器数据文件解析-Excel文件(xls、xlsx)

    不少仪器工作站可以将数据导出为Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件。

    采集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];
    

     

  • 相关阅读:
    代码重构~提取方法
    代码重构~提取到类
    不说技术~有时,开发者还是应该讲究一点!
    代码重构~封装成员变量
    将不确定变为确定~LINQ查询包含对不同数据上下文上所定义项的引用
    真实的用户,真实的中国互联网
    John Resig: JavaScript's Chuck Norris
    chrome插件IE tab使用技巧
    人生的疆域与生存的幻象—阅读丰富人生
    WPF 创建多行TextBox
  • 原文地址:https://www.cnblogs.com/mahongbiao/p/7672920.html
Copyright © 2011-2022 走看看