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 XSSFWorkBook
xls版本,需要是 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使用手册