首页 > 其他分享 >NPOI导出Excel表格带图片

NPOI导出Excel表格带图片

时间:2023-06-16 18:33:50浏览次数:52  
标签:表格 int Excel NPOI Height sheet1 HSSFSheet 行高 255

 if (info.ApplyImg.IsNotNullOrEmpty())
            {
                // 添加图片
                HSSFWorkbook hwb = new HSSFWorkbook();
                HSSFSheet sheet = (HSSFSheet)hwb.CreateSheet("房产维修申请单");
                byte[] bytes = GetImageBuffer(info.ApplyImg);
                int pictureIdx = hwb.AddPicture(bytes, PictureType.JPEG);
                var patriarch = sheet.CreateDrawingPatriarch();
                HSSFClientAnchor anchor = new HSSFClientAnchor(255, 255, 255, 255, 1, 2, 8, 4);
                //把图片插到相应的位置
                HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);
            }

            private byte[] GetImageBuffer(string path)
            {
                return File.ReadAllBytes(Server.MapPath(path));
            }

 

HSSFClientAnchor 参数说明

 

pache POI  是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

HSSFClientAnchor用于创建一个新的端锚,并设置锚的左下和右下坐标,用于图片插入,画线等操作。

 

HSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2)

dx1 dy1 起始单元格中的x,y坐标.

dx2 dy2 结束单元格中的x,y坐标

col1,row1 指定起始的单元格,下标从0开始

col2,row2 指定结束的单元格 ,下标从0开始

 

 

 

注意

        1、一个是行和列的索引(从0开始的)

        2、行高和列宽的单位(行高,默认255点,12.5,列宽 2048,8个字符。)

        3、 HSSFRow.Height和HeightInPoints,这两个属性的区别在于HeightInPoints的单位是点,而Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍)

        4、 下面设置列宽 SetColumnWidth的第二个参数要乘以256,这个参数的单位是1/256个字符宽度,也就是说,这里是把1列的宽度设置为了100个字符。

 

         HSSFWorkbook hssfworkbook = new HSSFWorkbook(); HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");

         设置列宽

         sheet1.SetColumnWidth(1, 100 * 256);

         获取行高

         int col1width = sheet1.GetColumnWidth(1);
       

        设置第一行的高度

       sheet1.CreateRow(0).Height = 200*20; 

        或者

       sheet1.CreateRow(0).HeightInPoints = 200;

       获得行高

        HSSFRow.Height属性的返回值。

       一行一行设置行高或者一列一列设置列宽很麻烦,那你可以考虑使用HSSFSheet.DefaultColumnWidth、HSSFSheet.DefaultRowHeight和HSSFSheet.DefaultRowHeightInPoints属性。

       一旦设置了这些属性,如果某一行或者某一列没有设置宽度,就会使用默认宽度或高度。代码如下:

       默认设置

       sheet1.DefaultColumnWidth=100*256;

       sheet1.DefaultRowHeight=30*20;

原文链接:http://www.bubuko.com/infodetail-2310009.html

标签:表格,int,Excel,NPOI,Height,sheet1,HSSFSheet,行高,255
From: https://www.cnblogs.com/SmallChen/p/17486269.html

相关文章

  • 利用react-resizable实现antd表格头宽度可以拖拽调节
    1.创建ResizeAbleTable文件夹1.1index.jsimport{Table}from"antd4"importReact,{useEffect,useState}from"react"import{Resizable}from"react-resizable"import"./index.less"/***可伸缩列*@paramprops*@retur......
  • jquery根据json自动生成表格
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>导入文件</title><linkrel="stylesheet"href="/js/bootstrap.min.css"><scriptsrc="/js/jquery.min.js&q......
  • 打工笔记--------------------------弄了一个还不错的NPOI的helper类
    `usingNPOI.HSSF.UserModel;usingNPOI.SS.UserModel;usingNPOI.SS.Util;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.IO;usingSystem.Linq;usingSystem.Text;namespaceUtils.Public{publicpartialclassNPOIHelper{/......
  • EasyExcel读取Minio文件服务器Excel文件数据
       工具类inputstream转为MultipartFile/***inputStream转MultipartFile*@paraminputStream*@paramfileName*@return*/publicstaticFileItemcreateFileItem(InputStreaminputStream,StringfileName){FileItemFa......
  • Excel 进度图表制作
    Excel改变图标的形状最终效果过程有点杂乱,不再重新整理,基本照着下面的设就完事了。未完成的想用柱型,和已完成的相结合右击,更改表类型选择簇状柱形图、次标轴注意主、次坐标进度改为折线图调整右侧百分比轴数据表,显示表格数据折线显示数据点注意,系列虚......
  • EXCEL操作快捷键
    Ctrl+D单元格内容向下复制Ctrl+R单元格内容向右复制Ctrl+Pageup:移动到上一个工作表Ctrl+Pagedown :移动到下一个工作表Ctrl+9隐藏行Ctrl+Shift+9取消隐藏行Ctrl+;输入当前日期39、Ctrl+Shift+;输入当前时间40、Ctrl+F1显示功能区****************************......
  • 在线实时生成Excel文件流供下载
    我做过的一个项目,需要实现在线实时生成Excel文件供客户端下载的需求,最初考虑的是先在服务器端生成真实的文件,然后在客户端下载该文件。后来发现这样做不但性能不够好、速度较慢,而且还要占用服务器空间。所以采取了在服务器端生成文件输出流(ServletOutputStream),通过HttpServle......
  • 操作excel
    fromopenpyxlimportWorkbookfromopenpyxlimportload_workbookwb=load_workbook(u"projects-shanghai.xlsx")ws=wb.worksheets[0]maxRow=ws.max_row#获取总行数print('#excleRowSum:'+str(maxRow))foriinrange(2,maxRow+1):if......
  • excel表格有很多列,copy进word时候如何自适应?
    word里,选中表格,表格工具——自动调整——根据内容调整表格这样,word里,一页的宽度,就可以显示完excel里的所有列了......
  • Easy Excel
    EasyExcel导入文件正常的数据直接导入,非正常数据错误原因返回给前端EasyExcel官网https://easyexcel.opensource.alibaba.com/docs/current/代码依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId></dependency>co......