当前位置: 首页 > news >正文

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args)
{XlsWithObjData();Console.WriteLine("输出完成");
}static void XlsWithObjData()
{// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1");IRow row = sheet.CreateRow(0);ICell cell = row.CreateCell(0);// 读取ZIP文件为字节数组byte[] zipData = File.ReadAllBytes("001.pdf");var imgData = File.ReadAllBytes("001.png");var iconid = workbook.AddPicture(imgData, PictureType.PNG);var pdfIdx = workbook.AddOlePackage(zipData, "222.pdf", "333.pdf", "111.pdf");HSSFPatriarch drawing = (HSSFPatriarch)sheet.CreateDrawingPatriarch();HSSFClientAnchor anchor = (HSSFClientAnchor)drawing.CreateAnchor(0, 0, 0, 0, 1, 1, 0, 0);anchor.AnchorType = AnchorType.MoveAndResize;drawing.CreateObjectData(anchor, pdfIdx, iconid);// 保存文件var fileName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xls";FileStream fs = new FileStream(fileName, FileMode.Create);workbook.Write(fs);fs.Close();workbook.Close();
}
//插入图片
static void InsertImg()
{//创建工作簿HSSFWorkbook wk = new HSSFWorkbook();ISheet sheet = wk.CreateSheet("sheet1");//sheet.SetColumnWidth(0, 1);//sheet.AutoSizeColumn(0);//添加内容IRow row = sheet.CreateRow(0);ICell cell = row.CreateCell(0);HSSFRichTextString rich = new HSSFRichTextString("签名:");cell.SetCellValue(rich);//添加图片byte[] bytes = System.IO.File.ReadAllBytes("001.png");int pictureIdx = wk.AddPicture(bytes, PictureType.PNG);HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();//HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 0, 0, 0, 1, 3);HSSFClientAnchor anchor = new HSSFClientAnchor(223, 0, 0, 0, 0, 0, 1, 1);//设置图片变换类型anchor.AnchorType = AnchorType.MoveDontResize;HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);//pict.Resize(100,50);//保存到文件var fileName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") +"图片"+ ".xls";FileStream fs = new FileStream(fileName, FileMode.Create);wk.Write(fs);fs.Close();wk.Close();Console.WriteLine("导出数据成功!");
}

参考

https://blog.csdn.net/m0_72440880/article/details/137240571

相关文章:

  • 用电脑通过USB总线连接控制keysight示波器
  • Android第十五次面试总结(第三方组件和adb命令)
  • 嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
  • JAVA学习 DAY3 注释与编码规范讲解
  • Kerberos面试内容整理-未来发展趋势
  • SQL进阶之旅 Day 20:锁与并发控制技巧
  • 霍夫变换(Hough Transform)原理简要介绍
  • 基于51单片机的多功能洗衣机仿真
  • 食品计算—Food Portion Estimation via 3D Object Scaling
  • 力扣HOT100之二分查找:153. 寻找旋转排序数组中的最小值
  • 第二十八课:深度学习及pytorch简介
  • Vue3中computed和watch的区别
  • Faiss vs Milvus 深度对比:向量数据库技术选型指南
  • [面试精选] 0094. 二叉树的中序遍历
  • UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结
  • SQL慢可能是触发了ring buffer
  • Ubuntu下有关UDP网络通信的指令
  • Vue学习之---nextTick
  • 《经济学原理》第9版第5章弹性及其应用
  • Nodejs工程化实践:构建高性能前后端交互系统
  • 萍乡网站开发/网站建设公司seo关键词
  • 做平台外卖的网站需要什么资质/网站搭建外贸
  • 做网站是否需要自购服务器/网络营销怎么做推广
  • 郑州上海做网站的公司有哪些/企业网站营销实现方式
  • 深圳做网站哪家公司最好/域名排名查询
  • 网站建设佰首选金手指二八/app引导页模板html