NPOI操作Excel时使用列头来读取数据的方法

时间:2021-07-13 10:57:44

首先定义扩展方法:

    public static ICell GetCell(this IRow row, string clounmName)
{
IRow firstRow = row.Sheet.GetRow();
for (int i = ; i < firstRow.PhysicalNumberOfCells; i++)
{
if (firstRow.GetCell(i).GetValue() == clounmName)
{
return row.GetCell(i);
}
}
throw new Exception(string.Format("未找到名为\"{0}\"的列头", clounmName));
}

调用:

  FileStream fs = new FileStream(fileName, FileMode.Open)

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

 附:扩展方法的使用:

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

 //创建自己的静态类
public static class MyExtension
{
//静态方法
public static int Number(this String str)
{
return str.Length;
}
}
  class Program
{
static void Main(string[] args)
{
//使用扩展方法
string str = "Hello World";
Console.WriteLine(str.Number());
}
}