C# 用NPOI读取EXCEL
1. 复制DLL文件
ICSharpCode.SharpZipLib.dll
NPOI.dll
NPOI.OOXML.dll
NPOI.OpenXml4Net.dll
NPOI.OpenXmlFormats.dll
2. 在工程中添加引用
3.
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.OpenXml4Net;
4. 操作EXCEL
private void button2_Click(object sender, EventArgs e){string strFileName;FileStream fs;string strTemp;IWorkbook myBook = null;ISheet mySheet = null;strFileName = @"H:\流水_2021.7-2021.12.xlsx";fs = File.OpenRead(strFileName);/*xlsx版本,需要是 new XSSFWorkBookxls版本,需要是 new HSSFWorkBook*/strTemp = strFileName.Substring(strFileName.Length - 5, 5);textBox2.Text = strTemp;//打开工作簿if ( strTemp == ".xlsx"){myBook = new XSSFWorkbook(fs);}else{myBook = new HSSFWorkbook(fs);}mySheet = myBook.GetSheetAt(0); //获取第一个工作表if(mySheet==null){myBook.Close();myBook = null;return;}//读取单元格内容strTemp = mySheet.GetRow(0).GetCell(0).ToString();textBox1.Text = strTemp;if( myBook != null){myBook.Close();myBook = null;}}}
5. 其他操作
mySheet.LastRow
IRow myRow = mySheet.GetRow(0) //获取第一行
ICell myCell = myRow.GetCell(0) //获取第一行第一列单元格
myBook.NumberOfSheeets //获取总的表数
myBook.GetSheetAt(i) //获取第i张表,表从0开始
myRow.Cells[2].ToString() //获取单元格内容,如果是公式的话,则返回计算公式
如果不想获取计算公式,直接获取计算结果,则使用
myRow.Cells[2].NumericCellValue
ISheet.GetRowEnumerator() 获得某一个ISheet的所有IRow
工作表中第一个有数据行的行号 ISheet.FirstRowNum
工作表中最后一个有数据行的行号 ISheet.LastRowNum
一行中第一个有数据列的列号 IRow.FirstCellNum
一行中最后一个有数据列的列号 IRow.LastCellNum
获取sheet所有合并单元格索引 ISheet.NumMergedRegions
其他后续再补充。今天只学了这么一点 :)
找到一个大佬的文章,链接:
NPOI使用手册 (操作Excel)_zou_ys88的博客-CSDN博客_npoi使用手册