C# NPOI导出到Word----向Word表格单元格中插入图片

  经过几天的研究,终于发现了向Word表格中单元格添加图片的方法,如下:      

                    XWPFTableCell Cell = table.GetRow(3).GetCell(0);//获取到进行图片插入的单元格

                    //单元格的宽度和高度

                    var cW = 1000;

                    var cH =  1000;

                    //得到要插入的图片

                    var img = new FileStream(图片路径, FileMode.Open, FileAccess.Read);

                    //进行图片插入

                    XWPFParagraph p = Cell.AddParagraph();
                    XWPFRun  run = p.CreateRun();
                    var widthPic = (int)((double)cW / 587 * 38.4 * 9525);
                    var heightPic= (int)((double)cH / 587 * 38.4 * 9525);
                    run.AddPicture(img, (int)NPOI.XWPF.UserModel.PictureType.JPEG, "11.png",  widthPic heightPic);

              +加个补充
                    跨列合并单元格:
                    table0.GetRow(int pos) .MergeCells(int startIndex, int endIndex);
                       
C#,使用NPOI插入图片Word文档是一个比较常见的需求。NPOI是一个流行的.NET库,可以用来读取和创建Microsoft Office格式的文件。以下是使用NPOIWord文档插入图片的基本步骤: 1. 首先,确保你已经添加了NPOI库的引用到你的项目。 2. 使用`XWPFDocument`类来加载或者创建一个Word文档(.docx格式)。 3. 使用`XWPFParagraph`类来获取或创建一个段落,这将作为图片的容器。 4. 创建一个`XWPFRun`对象,这个对象代表段落的可运行文本。 5. 使用`XWPFRun`对象的`AddPicture`方法来添加图片。这个方法有多个重载,可以根据需要选择合适的参数。 下面是一个简单的代码示例,展示如何在Word文档插入一张图片: ```csharp // 创建一个新的Word文档 using (var ms = new MemoryStream()) using (var document = new XWPFDocument()) { // 获取或创建一个段落 var paragraph = document.CreateParagraph(); // 创建一个文本运行,并添加一些文本 var run = paragraph.CreateRun(); run.SetText("这是图片前的文本"); // 在文档添加图片 var imagePath = @"C:\path\to\your\image.png"; // 图片路径 var image = ImageIO.Read(new FileStream(imagePath, FileMode.Open, FileAccess.Read)); var inline = paragraph.CreateRun().AddPicture(image, ImageType.JPEG, imagePath, Units.ToEMU(100), // 图片宽度 Units.ToEMU(100) // 图片高度 ); // 保存文档 document.Write(ms); using (var fileStream = new FileStream(@"C:\path\to\save\your\document.docx", FileMode.Create)) { ms.WriteTo(fileStream); } } ``` 在这个示例,`Units.ToEMU`方法用于将像素值转换为EMUs(EMUs是基于1/360000英寸的度量单位,Word文档使用EMUs来度量图片大小)。这是因为在Word文档,图片的大小是以EMUs为单位的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值