码迷,mamicode.com
首页 > 其他好文 > 详细

NPOI插入图片到excel指定单元格

时间:2015-08-21 18:47:21      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

先看效果图

技术分享

代码

 

技术分享
//创建一个工作簿
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建一个sheet
        ISheet sheet1 = workbook.CreateSheet("sheet1");
        // 设置列宽,excel列宽每个像素是1/256
        sheet1.SetColumnWidth(0, 18 * 256);
        sheet1.SetColumnWidth(1, 18 * 256);
        IRow rowHeader = sheet1.CreateRow(0);//创建表头行
        rowHeader.CreateCell(0, CellType.STRING).SetCellValue("生产单号");
        rowHeader.CreateCell(1, CellType.STRING).SetCellValue("图片");
        DataTable dt = sqlhelperPro.seachData("SELECT top 3 PRODID,KTL_PIC FROM Long_tmpPIC");
        if (dt.Rows.Count > 0)
        {
            int rowline = 1;//从第二行开始(索引从0开始)
            foreach (DataRow datarow in dt.Rows)
            {
                IRow row = sheet1.CreateRow(rowline);
                //设置行高 ,excel行高度每个像素点是1/20
                row.Height = 80 * 20;
                  //填入生产单号
                row.CreateCell(0, CellType.STRING).SetCellValue(datarow["PRODID"].ToString());
                  //将图片文件读入一个字符串
               byte[] bytes = System.IO.File.ReadAllBytes(datarow["KTL_PIC"].ToString());
               int pictureIdx=workbook.AddPicture(bytes,PictureType.JPEG);
             HSSFPatriarch patriarch = (HSSFPatriarch)sheet1.CreateDrawingPatriarch();
            // 插图片的位置  HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2) 后面再作解释
             HSSFClientAnchor anchor = new HSSFClientAnchor(70, 10,0,0, 1,rowline, 2, rowline +1);
            //把图片插到相应的位置
             HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);
                rowline++;
            }
        }
        NPOIDowmLoad(workbook);//下载excel
View Code

 参数的解析: HSSFClientAnchor(int dx1,int dy1,int dx2,int dy2,int col1,int row1,int col2,int row2)

 

dx1:图片左边相对excel格的位置(x偏移) 范围值为:0~1023;即输10 偏移的位置大概是相对于整个单元格的宽度的100除以1023大概是10分之一

dy1:图片上方相对excel格的位置(y偏移) 范围值为:0~256 原理同上。

dx2:图片右边相对excel格的位置(x偏移) 范围值为:0~1023; 原理同上。

dy2:图片下方相对excel格的位置(y偏移) 范围值为:0~256 原理同上。

col1和row1 :图片左上角的位置,以excel单元格为参考,比喻这两个值为(1,1),那么图片左上角的位置就是excel表(1,1)单元格的右下角的点(A,1)右下角的点。

col2和row2:图片右下角的位置,以excel单元格为参考,比喻这两个值为(2,2),那么图片右下角的位置就是excel表(2,2)单元格的右下角的点(B,2)右下角的点。

 以上纯属个人开发经验欢迎指正

NPOI 用法可参考官网(中文)  http://tonyqus.sinaapp.com/

 

NPOI插入图片到excel指定单元格

标签:

原文地址:http://www.cnblogs.com/wei325/p/4748324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!