asp.net core api使用npoi生成excel

一、定义工作簿book

HSSFWorkbook excelBook = new HSSFWorkbook();

二、定义样式

ICellStyle styleCenterHt12 = excelBook.CreateCellStyle();//声明样式
styleCenterHt12.Alignment = HorizontalAlignment.Center;//水平居中
styleCenterHt12.VerticalAlignment = VerticalAlignment.Center;//垂直居中
styleCenterHt12.BorderBottom = BorderStyle.Thin;//下边框
styleCenterHt12.BorderLeft = BorderStyle.Thin;//左边框
styleCenterHt12.BorderRight = BorderStyle.Thin;//右边框
styleCenterHt12.BorderTop = BorderStyle.Thin;//上边框

三、定义工作表sheet并设置列宽

ISheet sheet1 = excelBook.CreateSheet("外协部件二维码");//设置工作表名称
sheet1.SetColumnWidth(0, (int)(30 * 20 * 2.44)); //excel单位 5  及 在excel中单位为1 则 公式为 6*20*2.44
sheet1.SetColumnWidth(1, (int)(115 * 20 * 2.44));
sheet1.SetColumnWidth(2, (int)(30 * 20 * 2.44));
sheet1.SetColumnWidth(3, (int)(60 * 20 * 2.44));

四、定义行

IRow row0 = sheet1.CreateRow(0);//在excel中行号为 1 的地方 创建一行

五、定义单元格

ICell cell0 = row0.CreateCell(0);//创建单元格
cell0.SetCellValue("单元格内容");//写入单元格内容
cell0.CellStyle = styleCenterHt12;//设置单元格样式

六、合并单元格

CellRangeAddress region = new CellRangeAddress(rowNo, rowNo, 1, 2);//合并单元格(第几行,到第几行,第几列,到第几列)
sheet1.AddMergedRegion(region);
((HSSFSheet)sheet1).SetEnclosedBorderOfRegion(region,BorderStyle.Thin,HSSFColor.Black.Index);

七、将工作簿写入文件流并返回

System.IO.MemoryStream bookStream = new System.IO.MemoryStream();
//将工作薄写入文件流
excelBook.Write(bookStream);
//输出之前调用Seek(偏移量,游标位置) 把0位置指定为开始位置
bookStream.Seek(0, System.IO.SeekOrigin.Begin);
//Stream对象,文件类型,文件名称
return bookStream;

八、生成二维码并将二维码写入excel

string strCode = "二维码内容";//定义二维码内容
QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();//创建二维码生成器类
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q);//定义二维码数据及二维码级别
QRCode qrcode = new QRCode(qrCodeData);//创建二维码类
Bitmap qrCodeImage = qrcode.GetGraphic(1, Color.Black, Color.White, null, 15, 6, false);//通过二维码类生成bitmap图片
MemoryStream ms = new MemoryStream();//定义字节数组流,用于存放二维码图片内容
qrCodeImage.Save(ms, ImageFormat.Jpeg);//将二维码图片写入流中
int pictureIdx = excelBook.AddPicture(ms.ToArray(), PictureType.JPEG);//在excel中添加图片并返回索引
HSSFPatriarch patriarch = (HSSFPatriarch)sheet1.CreateDrawingPatriarch();//在excel中创建画笔
HSSFClientAnchor anchor = new HSSFClientAnchor(200, 50, 823, 245, 3, rowNo + 1, 3, rowNo + 1);//定义图片在excel单元格中的相对位置(x1,y1,x2,y2,col1,row1,col2,row2)
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);//显示图片
ms.Close();//关闭流

九、插入普通图片到excel中

byte[] bytes=System.IO.File.ReadAllBytes(@"D:\image.jpg");//读取图片为字节数组
int pictureIdx = excelBook.AddPicture(bytes, PictureType.JPEG);//在excel中添加图片并返回索引
HSSFPatriarch patriarch = (HSSFPatriarch)sheet1.CreateDrawingPatriarch();//在excel中创建画笔
HSSFClientAnchor anchor = new HSSFClientAnchor(200, 50, 823, 245, 3, rowNo + 1, 3, rowNo + 1);//定义图片在excel单元格中的相对位置(x1,y1,x2,y2,col1,row1,col2,row2)
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);//显示图片
ms.Close();//关闭流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值