用java写一个表格数据(用文本或表格替换Word书签内容)

本文将使用Free Spire.Doc for Java免费控件来演示如何替换Word文档中添加有书签的文本段落。具体内容如下:

  • 文本替换书签内容
  • 表格替换书签内容

在运行代码前,需将jar包导入IDEA。可通过下载产品包手动导入或在Maven下的pom.xml文件中添加如下引用。

<repositories> <repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc.free</artifactId> <version>3.9.0</version> </dependency> </dependencies>

示例1 用文本替换书签内容

import com.spire.doc.*; import com.spire.doc.documents.*; public class ReplaceWithText { public static void main(String[] args) { //加载Word文档 Document doc = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx"); //定位到书签"MyBookmark" BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc); bookmarkNavigator.moveToBookmark("MyBookmark"); //使用文本替换原书签的内容, false表示不保留原来的格式 bookmarkNavigator.replaceBookmarkContent("使用文本替换书签内容", false); //保存文档 doc.saveToFile("output/ReplaceWithText.docx", FileFormat.Docx); } }

或使用Html String替换书签内容

import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.ParagraphBase; public class ReplaceWithHTMLString { public static void main(String[] args) { //加载Word文档 Document doc = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx"); //临时添加一个section Section tempSection = doc.addSection(); //添加段落到section并添加Html string到段落 String html = "使用文本替换书签内容"; tempSection.addParagraph().appendHTML(html); //获取段落的第一项和最后一项 ParagraphBase firstItem = (ParagraphBase)tempSection.getParagraphs().get(0).getItems().getFirstItem(); ParagraphBase lastItem = (ParagraphBase)tempSection.getParagraphs().get(0).getItems().getLastItem(); //创建TextBodySelection对象 TextBodySelection selection = new TextBodySelection(firstItem, lastItem); //创建TextBodyPart对象 TextBodyPart bodyPart = new TextBodyPart(selection); //定位到书签"MyBookmark" BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc); bookmarkNavigator.moveToBookmark("MyBookmark"); //使用Html string替换原书签的内容 bookmarkNavigator.replaceBookmarkContent(bodyPart); //移除临时添加的section doc.getSections().remove(tempSection); //保存结果文档 doc.saveToFile("output/ReplaceWithHTMLString.docx", FileFormat.Docx); } }

替换前后对比:

用java写一个表格数据(用文本或表格替换Word书签内容)(1)

示例2 用表格替换书签内容

import com.spire.doc.*; import com.spire.doc.documents.*; public class ReplaceWithTable { public static void main(String[] args) { //加载Word文档 Document doc = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx"); String[][] data = { new String[]{"名称", "额定容量", "电源", "工作时间"}, new String[]{"LED-901充电式手电筒", "900mAH", "AC110V/220V", "26个小时"}, }; //创建表格 Table table = new Table(doc, true); table.resetCells(2, 4); for (int i = 0; i < data.length; i ) { TableRow dataRow = table.getRows().get(i); for (int j = 0; j < data[i].length; j ) { dataRow.getCells().get(j).addParagraph().appendText(data[i][j]); } } //创建TextBodyPart对象 TextBodyPart bodyPart= new TextBodyPart(doc); bodyPart.getBodyItems().add(table); //定位到书签"MyBookmark" BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc); bookmarkNavigator.moveToBookmark("MyBookmark"); //使用表格替换原书签的内容 bookmarkNavigator.replaceBookmarkContent(bodyPart); //保存文档 doc.saveToFile("output/ReplaceWithTable.docx", FileFormat.Docx); } }

替换效果:

用java写一个表格数据(用文本或表格替换Word书签内容)(2)

推荐阅读:

如何添加、读取、删除Word书签

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页