NPOI简单操作excel

时间:2023-03-09 01:40:48
NPOI简单操作excel

本文仅当是个记录文件,仅供初学者参考。

首先得using几个npoi的空间名如下:

using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using System.IO;

添加函数的方法如下:

/// <summary>
/// excel添加图片的方法
/// </summary>
/// <param name="p_sheet">创建的sheet</param>
/// <param name="p_workbook">workbook</param>
/// <param name="p_szFileUrl">图片的url</param>
/// <param name="p_irow">行</param>
/// <param name="p_icol">列</param>
public static void AddPic(ISheet p_sheet,HSSFWorkbook p_workbook,string p_szFileUrl,int p_irow,int p_icol) {
try {
string szFileNm = p_szFileUrl;
if (!string.IsNullOrEmpty(szFileNm) && File.Exists(szFileNm)) {
byte[] bytes = System.IO.File.ReadAllBytes(szFileNm);
int iPictureIdx = ;
iPictureIdx = p_workbook.AddPicture(bytes,PictureType.JPEG);
HSSFPatriarch patriarch = (HSSFPatriarch)p_sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new NPOI.HSSF.UserModel.HSSFClientAnchor(, , , , p_irow, p_icol, p_irow + , p_icol+);
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, iPictureIdx);
}
}
catch (Exception ex) { }
}

这里我添加了一个button按钮,点击后将数据写入excel中

protected void Button1_Click(object sender, EventArgs e)
{ //创建工作薄
HSSFWorkbook wk = new HSSFWorkbook();
//创建一个名称为mySheet的表,当然你也可以get一个已存在的sheet
ISheet tb = wk.CreateSheet("mySheet"); //创建一行,此行为第二行
IRow row = tb.CreateRow();
IRow row1 = tb.CreateRow();
IRow row2 = tb.CreateRow();
ICell cell1 = row1.CreateCell();
ICell cell2 = row1.CreateCell();
ICell cell3 = row2.CreateCell();
ICell cell4 = row2.CreateCell();
string szPicUrl = @"C:\Users\qq00067767\Desktop\xxx.png"; //图片地址
AddPic(tb, wk, szPicUrl, , ); for (int i = ; i < ; i++)
{
ICell cell = row.CreateCell(i); //在第二行中创建单元格
cell.SetCellValue(i);//循环往第二行的单元格中添加数据
}
//using (FileStream fs = File.OpenWrite(@"C:\Users\qq00067767\Desktop\xqqtest.xls"))//打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!
//{
// wk.Write(fs); //向打开的这个xls文件中写入mySheet表并保存。 //}
FileStream oFile = new FileStream(@"C:\Users\qq00067767\Desktop\xqqtest.xls", FileMode.Open, FileAccess.ReadWrite); wk.Write(oFile); oFile.Close(); }

经过测试,没有问题!!!