NPOI Excel表格处理

//创建一个Excel文件
HSSFWorkbook work = new HSSFWorkbook();
//新建一个工作表
ISheet sheet1 = work.CreateSheet("工作表名称");

//新增
//新建一行,行号从0开始
IRow row = sheet1.CreateRow(0);
//创建一个单元格(列从0开始)并写入值
row.CreateCell(0).SetCellValue("test");

//修改
//修改一个单元格的内容
//方法一
row.GetCell(0).SetCellValue("edit");
//方法二
sheet1.GetRow(0).GetCell(0).SetCellValue("edit");

//读取单元格的值
//方法一
string val = row.GetCell(0).StringCellValue;
//方法二
string val2 = sheet1.GetRow(0).GetCell(0).StringCellValue;
//创建一个新的单元写入读取的值,看是否正确
row.CreateCell(2).SetCellValue(val + val2);

/* 注意没有创建的单元格无法使用
 * 在当前实例中,以下操作运行时都会报错
row.GetCell(3).SetCellValue("edit");
sheet1.GetRow(1).GetCell(3).SetCellValue("edit");
string valt = row.GetCell(3).StringCellValue;
string valt2 = sheet1.GetRow(0).GetCell(3).StringCellValue;
*/

//合并单元格
//圈定范围CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)
//圈定范围内的单元格不要求必须事先创建好
//合并后仅保留firstRow,firstCol的内容
sheet1.AddMergedRegion(new CellRangeAddress(1, 2, 1, 3));
//合并后的单元格写值和读值都必须在firstRow,firstCol中进行
//同上没有创建的单元格无法使用,使用前必须先创建            
sheet1.CreateRow(1).CreateCell(1).SetCellValue("123");//从上面可以发现,NPOI允许先合并单元格再创建单元格来写值和读值

//创建一个文件流
FileStream fs = File.Create("test.xls");
//将NPOI创建的Excel写入"test.xls"文件
work.Write(fs);
//关闭文件流
fs.Close();

原文地址:https://www.cnblogs.com/letnet/p/8525104.html