一、准备工作
在使用Java生成Word之前,需要准备以下软件和工具:
1. JDK:Java Development Kit是Java语言开发的基础工具包。
2. Eclipse:Eclipse是一款著名的Java开发工具。
3. Apache POI:Apache POI是Apache软件基金会提供的一组Java API,用于处理Microsoft Office格式的文档。
4. Microsoft Word:生成的Word文档需要使用Microsoft Word才能打开和编辑。
二、新建Word文档
在Java中使用Apache POI生成Word文档,首先需要生成一个新的Word文档。
// 新建一个空白文档 XWPFDocument document = new XWPFDocument(); // 创建段落 XWPFParagraph paragraph = document.createParagraph(); // 创建一个run XWPFRun run = paragraph.createRun(); // 写入内容 run.setText("Hello, World!"); // 保存文档 FileOutputStream out = new FileOutputStream("hello.docx"); document.write(out); out.close();
可以看到,新建一个Word文档需要使用XWPFDocument
类,可以在文档对象上创建段落和文本框,并使用createRun()
方法在段落或文本框中创建一个run。
三、添加样式
在Word文档中添加样式可以使文档更加美观,可以通过Apache POI的相关API添加样式。
1、添加粗体样式
XWPFRun run = paragraph.createRun(); run.setBold(true); // 设置为粗体 run.setText("Hello, World!");
2、添加斜体样式
XWPFRun run = paragraph.createRun(); run.setItalic(true); // 设置为斜体 run.setText("Hello, World!");
3、添加下划线样式
XWPFRun run = paragraph.createRun(); run.setUnderline(UnderlinePatterns.SINGLE); // 设置下划线 run.setText("Hello, World!");
4、添加字体大小和颜色
XWPFRun run = paragraph.createRun(); run.setFontSize(16); // 设置字体大小 run.setColor("FF0000"); // 设置字体颜色 run.setText("Hello, World!");
四、表格操作
在Word文档中插入表格可以使内容更加有条理。我们可以使用Apache POI中提供的表格API插入表格。
1、创建表格
XWPFTable table = document.createTable(); // 设置表格边框 table.setInsideHBorder(XWPFBorderType.SINGLE); table.setInsideVBorder(XWPFBorderType.SINGLE);
2、插入行和单元格
// 创建表格 XWPFTable table = document.createTable(); // 创建第一行 XWPFTableRow tableRow = table.getRow(0); // 设置表格边框 tableRow.getTableCells().forEach(cell -> { cell.setColor("708090"); cell.setVerticalAlignment(XWPFVertAlign.CENTER); }); // 插入数据 tableRow.getCell(0).setText("学号"); tableRow.addNewTableCell().setText("姓名"); tableRow.addNewTableCell().setText("性别"); tableRow.addNewTableCell().setText("年龄"); // 添加第二行 XWPFTableRow tableRow2 = table.createRow(); tableRow2.getCell(0).setText("001"); tableRow2.getCell(1).setText("张三"); tableRow2.getCell(2).setText("男"); tableRow2.getCell(3).setText("20");
五、图片操作
在Word文档中插入图片可以使内容更加生动,可以使用Apache POI提供的API插入图片。
1、插入图片
// 加载图片 InputStream is = new FileInputStream("image.jpg"); byte[] bytes = IOUtils.toByteArray(is); // 插入图片 XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.addPicture(bytes, XWPFDocument.PICTURE_TYPE_JPEG, "image.jpg", Units.toEMU(200), Units.toEMU(200)); // 关闭输入流 IOUtils.closeQuietly(is);
2、将图片嵌入到文档中
XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); // 加载图片 InputStream is = new FileInputStream("image.jpg"); byte[] bytes = IOUtils.toByteArray(is); // 将图片嵌入到文档中 int pictureIndex = document.addPicture(bytes, XWPFDocument.PICTURE_TYPE_JPEG); // 创建一个Inline图片 CTInline inline = run.getCTR().addNewDrawing().addNewInline(); // 设置图片大小 int width = Units.toEMU(200); int height = Units.toEMU(200); inline.addNewExtent().setCx(width); inline.addNewExtent().setCy(height); // 设置图片 ID inline.addNewGraphic().addNewGraphicData().addNewPic().addNewBlipFill().addNewBlip().setEmbed(Integer.toString(pictureIndex)); // 关闭输入流 IOUtils.closeQuietly(is);
六、总结
本文简单介绍了如何使用Java生成Word,主要包括准备工作、新建Word文档、添加样式、表格操作和图片操作。