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);
                       
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用 NPOI 库来向 Word 文档插入表格。以下是一个示例代码: ```csharp using System; using System.IO; using NPOI.XWPF.UserModel; using NPOI.OpenXmlFormats.Wordprocessing; namespace InsertTableInWord { class Program { static void Main(string[] args) { // 创建 Word 文档对象 XWPFDocument doc = new XWPFDocument(); // 创建一个段落对象 XWPFParagraph paragraph = doc.CreateParagraph(); // 创建一个表格对象 XWPFTable table = doc.CreateTable(3, 3); // 设置表格样式 CT_TblPr tblPr = table.GetCTTbl().tblPr; tblPr.tblBorders = new CT_TblBorders(); tblPr.tblBorders.top = new CT_Border(); tblPr.tblBorders.top.val = ST_Border.single; tblPr.tblBorders.bottom = new CT_Border(); tblPr.tblBorders.bottom.val = ST_Border.single; tblPr.tblBorders.left = new CT_Border(); tblPr.tblBorders.left.val = ST_Border.single; tblPr.tblBorders.right = new CT_Border(); tblPr.tblBorders.right.val = ST_Border.single; tblPr.tblLayout = new CT_TblLayoutType(); tblPr.tblLayout.type = ST_TblLayoutType.autofit; // 设置表格内容 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { // 获取单元对象 XWPFTableCell cell = table.GetRow(i).GetCell(j); // 设置单元内容 cell.SetText("Row " + i + ", Column " + j); } } // 将表格添加到段落 paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; XWPFRun run = paragraph.CreateRun(); run.SetText("Table Title"); run.IsBold = true; run.FontSize = 14; run.FontFamily = "Times New Roman"; run.SetTextPosition(20); paragraph = doc.CreateParagraph(); paragraph.SpacingBefore = 200; paragraph.SpacingAfter = 200; paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText("This is a sample table:"); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); paragraph = doc.CreateParagraph(); paragraph.Alignment = ParagraphAlignment.CENTER; paragraph.VerticalAlignment = TextAlignment.CENTER; paragraph.CreateRun().SetText(""); // 保存 Word 文档 using (FileStream stream = new FileStream("table.docx", FileMode.Create)) { doc.Write(stream); } } } } ``` 在上面的示例代码,首先创建了一个 Word 文档对象,然后创建了一个段落对象和一个表格对象,并且设置了表格的样式和内容。接着将表格添加到段落,并设置段落的样式。最后将文档保存到指定的文件。 注意:上面的代码示例,为了使表格,特意在表格前添加了多个空行来进行排版。实际使用时,可以根据需要调整段落的样式和排版方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值