zoukankan      html  css  js  c++  java
  • NPOI操作Excel时使用列头来读取数据的方法

    首先定义扩展方法:

     1    public static ICell GetCell(this IRow row, string clounmName)
     2         {
     3             IRow firstRow = row.Sheet.GetRow(0);
     4             for (int i = 0; i < firstRow.PhysicalNumberOfCells; i++)
     5             {
     6                 if (firstRow.GetCell(i).GetValue() == clounmName)
     7                 {
     8                     return row.GetCell(i);
     9                 }
    10             }
    11             throw new Exception(string.Format("未找到名为"{0}"的列头", clounmName));
    12         }

    调用:

      FileStream fs = new FileStream(fileName, FileMode.Open)
    
      IWorkBook workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(fs);
      string value = string.Empty;
    
       ISheet sheet = workbook.GetSheetAt(0);
    for (int i = 1; i < sheet.PhysicalNumberOfRows; i++) { value = sheet.GetRow(i).GetCell("数量").GetValue(); }

     附:扩展方法的使用:

    扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。  扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

    1 //创建自己的静态类
    2 public static class MyExtension
    3     {
    4       //静态方法
    5         public static int Number(this String str)
    6         {
    7             return str.Length;
    8         }
    9     }
    1  class Program
    2     {
    3         static void Main(string[] args)
    4         {
    5             //使用扩展方法
    6             string str = "Hello World";
    7             Console.WriteLine(str.Number());
    8         }
    9     }
  • 相关阅读:
    message sent to deallocated instance
    将本地项目提交github
    WKWebView 初窥-JS交互探究
    抓包工具Charles的使用
    iOS hook delegate (一)
    Return
    控制方法只有相应权限才可执行
    如何模拟登陆添加了CSRF保护的网站
    HTTP客户端都应该支持的五个特性
    如何利用WebClient模拟登陆CSRF控制的网站
  • 原文地址:https://www.cnblogs.com/zhaotianff/p/5761008.html
Copyright © 2011-2022 走看看