NPOI在多个sheet插入同一张图片

由于需要,导的文件里面有个单号,这个单号需要有同时显示成条码样式,而且要导到excel里面,只能用NPOI

HSSFWorkbook xlbook = new NPOI.HSSF.UserModel.HSSFWorkbook();

每个sheet创建时候头部都有单号和单号条码,每个sheet创建后如果要插入图片都要调用下面的方法

       //设置列宽并画条码图片
        private void generateOTTOrderSheet_StyleAndBarcode(ref HSSFWorkbook xlbook, ref HSSFSheet sheet, string invoiceNo)
        {

                        //设置列宽
            int colIndiex = 0;
            sheet.SetColumnWidth(colIndiex++, 12 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);
            sheet.SetColumnWidth(colIndiex++, 10 * 256);

 

               //条码
            MemoryStream msBarcode = new MemoryStream();
            byte[] imageBytesBarcode = null;

            '获取条码对应的图片
            Image image = PerfectBarCode128.GetBarCodeOf128(invoiceNo, 50);
            image.Save(msBarcode, System.Drawing.Imaging.ImageFormat.Jpeg);

            imageBytesBarcode = msBarcode.GetBuffer();

            int pictureIdxBarcode = xlbook.AddPicture(imageBytesBarcode, PictureType.JPEG);
            NPOI.SS.UserModel.Drawing patriarchBarcode = sheet.CreateDrawingPatriarch();
            这几个参数研究了半天,int dx1,int dy1,int dx2,int dy2,short col1,int row1,short col2, 2. int row2
            前边几个代表在该cell里面所占份额,后面是行和列,
            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 0, 0, 0, 1, 3);
            例如第二第二个(宽度)占了一半,可以用dx=500,dx最大1023,dy最大是255
            HSSFClientAnchor anchorBarcode = new HSSFClientAnchor(0, 0, 100, 0, 5, 0, 8, 3);
            NPOI.SS.UserModel.Picture pictBarcode = patriarchBarcode.CreatePicture(anchorBarcode, pictureIdxBarcode);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值