前段时间用在用NPOI导入Excel 的时候出现 异常
读取的方法是网上用的比较多的
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new XSSFWorkbook(file);
for (int i = 0; i < hssfworkbook.NumberOfSheets; i++) //NumberOfSheets是xls中总共的表数
{
sheet = hssfworkbook.GetSheetAt(i); //读取当前表数据
for (int j = 1; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
{
IRow row = sheet.GetRow(j); //读取当前行数据
if (row != null)
{
ICell cell = row.GetCell(0); //当前表格
if (cell != null)
{
}
}
}
}
}
平时导入Excel 文件都是用2003模板,所以没有碰到 2007 版本以上 读取出现异常
网上是说是上述方法是能对应 2003 版的
去网上整理了一个 能导入2007 以上版本Excel的方法
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new XSSFWorkbook(file); //加载excel
sheet = hssfworkbook.GetSheetAt(0); //读取当前表数据
IEnumerator rows = sheet.GetRowEnumerator(); //获取总行数
while (rows.MoveNext())
{
IRow row = (XSSFRow)rows.Current; //获取当前行
for (int i = 0; i < row.Cells.Count; i++) //遍历单元格
{
ICell cell = row.GetCell(i);
if (cell != null)
{
}
}
}
}
这里要引用一个DLL NOPI.OOXML.dll。
注意这里其实最好就好他提供的DLL 都引用,因为他们之间是有关联的