这里写自定义目录标题
什么是NPOI
百度百科:
NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。
学习过程中记录下的笔记
读取Excel
根据不同的excel文件后缀来读取,如下:
FileStream fs = new FileStream(excelFile, FileMode.Open, FileAccess.Read);
var ext = Path.GetExtension(excelFile).ToLower();
IWorkbook workBook = null;
if(extension == ".xls")
{
workBook = new HSSFWorkbook(fs);
}
else if(extension == ".xlsx")
{
workBook = new XSSFWorkbook(fs);
}
for(int i = 0;i < workBook.NumberOfSheets;i++)
{
ISheet sheet = workBook.GetSheetAt(i);
Console.WriteLine(sheet.SheetName);
for (int first = sheet.FirstRowNum; first <= sheet.LastRowNum; first++)
{
IRow row = sheet.GetRow(i);
if(row != null)
{
Console.WriteLine(row.FirstCellNum);
Console.WriteLine(row.LastCellNum);
}
for (int cellIndex = row.FirstCellNum; cellIndex <= row.LastCellNum; cellIndex++)
{
ICell cell = row.GetCell(cellIndex);
if(cell != null)
{
Console.WriteLine("cellIndex:{0},{1}", cellIndex, cell.CellType);
}
}
}
}
workBook.NumberOfSheets:获取sheet总数
workBook.GetSheet(string name):通过sheet名获取sheet
workBook.GetSheetAt(int index): 通过sheet的索引获取sheet,索引从0开始
sheet.FirstRowNum:起始行号(首个有内容的行为起始点)
sheet.LastRowNum:结尾行号
sheet.GetRow(int rowIndex): 获取行数据
CellType:
Unknown = -1,
Numeric = 0, //数值
String = 1, //字符串
Formula = 2, //公式
Blank = 3, //空值
Boolean = 4, //布尔
Error = 5 //错误