网站建设全网推广,dw网页设计图片链接,网站开发外贸客户,小白怎么做网页加油#xff0c;新时代打工人#xff01; 工作需求#xff0c;上个文章我们生成好的word#xff0c;这次将生成好的excel表格数据#xff0c;插入word中。需要准备好excle数据#xff0c;然后插入到word中。 最后个需要#xff0c;就是把这些生成好的word文档转成pdf进行… 加油新时代打工人 工作需求上个文章我们生成好的word这次将生成好的excel表格数据插入word中。需要准备好excle数据然后插入到word中。 最后个需要就是把这些生成好的word文档转成pdf进行前端下载下来。 Java使用apache.poi生成word package com.wh.filedownload.controller;import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblBorders;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;/*** author wh* date 2024年05月22日16:12* 将excel表格数据,导入现有的word模板中.*/
public class word2 {public static void main(String[] args) throws IOException, InvalidFormatException {String excelFilePath sample.xlsx;String wordFilePath output.docx;String tempWordFilePath tempWordFile.docx;FileInputStream excelFileInputStream new FileInputStream(new File(excelFilePath));Workbook workbook WorkbookFactory.create(excelFileInputStream);Sheet sheet workbook.getSheetAt(0); // 假设只处理第一个sheetFileInputStream wordFileInputStream new FileInputStream(new File(wordFilePath));XWPFDocument document new XWPFDocument(wordFileInputStream);int rowCount sheet.getLastRowNum();int colCount sheet.getRow(0).getLastCellNum(); // 假设第一行有最多的列// 创建Word中的表格XWPFTable table document.createTable(rowCount 1, colCount); // 1行是为了标题// 获取或创建表格的边框设置对象CTTblBorders tblBorders table.getCTTbl().getTblPr().getTblBorders();// 设置表格边框样式tblBorders.getTop().setVal(STBorder.SINGLE); // 上边框tblBorders.getLeft().setVal(STBorder.SINGLE); // 左边框tblBorders.getRight().setVal(STBorder.SINGLE); // 右边框tblBorders.getBottom().setVal(STBorder.SINGLE); // 下边框// 填充表格标题Row headerRow sheet.getRow(0);for (int i 0; i colCount; i) {XWPFTableCell cell table.getRow(0).getCell(i);cell.setText(headerRow.getCell(i).getStringCellValue());}// 填充表格数据for (int rowIndex 1; rowIndex rowCount; rowIndex) { // 从1开始跳过标题行Row dataRow sheet.getRow(rowIndex);if (dataRow null) continue; // 跳过空行XWPFTableRow tableRow table.getRow(rowIndex); // 对应的Word表格行for (int colIndex 0; colIndex colCount; colIndex) {Cell cell dataRow.getCell(colIndex);if (cell null) continue; // 如果单元格为空则跳过switch (cell.getCellType()) {case STRING:tableRow.getCell(colIndex).setText(cell.getStringCellValue());break;case NUMERIC:if (DateUtil.isCellDateFormatted(cell)) {tableRow.getCell(colIndex).setText(cell.getLocalDateTimeCellValue().toString());} else {tableRow.getCell(colIndex).setText(String.valueOf(cell.getNumericCellValue()));}break;// 可以继续添加对其他类型的处理}}}wordFileInputStream.close();FileOutputStream out new FileOutputStream(tempWordFilePath);document.write(out);out.close();document.close();workbook.close();excelFileInputStream.close();// 这里可以选择将tempWordFilePath移动或重命名为wordFilePath以覆盖原文件// 注意这一步骤会永久改变原Word文档File srcFile new File(tempWordFilePath);File destFile new File(wordFilePath);srcFile.renameTo(destFile);System.out.println(Excel content has been appended to the Word document.);}}运行结果。