JAVA编辑WORD文件插入图片

JAVA编辑WORD文件插入图片,第1张

试试这个代码,需要添加spire.doc jar依赖

import com.spire.doc.Document

import com.spire.doc.FileFormat

import com.spire.doc.Section

import com.spire.doc.documents.*

import com.spire.doc.fields.DocPicture

public class InsertImage {

    public static void main(String[] args) {

        //实例化Document对象

        Document doc = new Document()

        //加载文档

        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.docx")

        //获取第一个section

        Section section = doc.getSections().get(0)

        //添加一个段落

        Paragraph para = section.addParagraph()

        //添加图片到段落

        DocPicture picture = para.appendPicture("C:\\Users\\Administrator\\Desktop\\Cartoon.png")

        //设置文字环绕方式(居于文字上方)

        picture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text)

        //指定图片的相对位置

        picture.setHorizontalOrigin(HorizontalOrigin.Page)

        picture.setHorizontalPosition(250f)

        picture.setVerticalOrigin(VerticalOrigin.Top_Margin_Area)

        picture.setVerticalPosition(150f)

        //设置图片大小

        picture.setWidth(80f)

        picture.setHeight(80f)

        //保存到文档

        doc.saveToFile("output/InsertImage.docx", FileFormat.Docx)

    }

}

生成的Word:

使用nuget安装NPOI:

Install-Package NPOI

然后就来看看这些代码

private void btnExport_Click(object sender, EventArgs e)

{

var dbcontext = new BlogModel()

var list = dbcontext.ArticleInfos.ToList()

//创建document对象

XWPFDocument doc = new XWPFDocument()

//创建段落对象

XWPFParagraph p1 = doc.CreateParagraph()

//创建run对象

//本节提到的所有样式都是基于XWPFRun的,

//你可以把XWPFRun理解成一小段文字的描述对象,

//这也是Word文档的特征,即文本描述性文档。

//来自Tony Qu http://tonyqus.sinaapp.com/archives/609

XWPFRun r1 = p1.CreateRun()

r1.SetBold(true)

r1.SetText("数据导出demo")

r1.SetBold(true)

r1.SetFontFamily("Arial")//设置雅黑字体

//创建表格对象列数写死了,可根据自己需要改进或者自己想想解决方案

XWPFTable table = doc.CreateTable(list.Count(), 4)

for (int i = 0i <list.Count()i++)

{

table.GetRow(i).GetCell(0).SetText(list[i].Id.ToString())

table.GetRow(i).GetCell(1).SetText(list[i].Title)

table.GetRow(i).GetCell(2).SetText(list[i].Content)

table.GetRow(i).GetCell(3).SetText(list[i].AddTime)

}

//保存文件到磁盘

FileStream out1 = new FileStream("simpleTable.docx", FileMode.Create)

doc.Write(out1)

out1.Close()

}

代码上写的有较为详细的注释,有需要的朋友可以自己试试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7895068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存