首先定義擴展方法:
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 }