可以在线做动图的网站,app小程序定制开发,邯郸网站建设恋家,广东省住房建设厅网站首页突然想起来有个小作业#xff1a;需要根据提供的Word模板填充数据。这里使用POI写了一个小demo验证下。
测试用模板#xff1a;
执行结果
1.引入依赖坐标 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactId需要根据提供的Word模板填充数据。这里使用POI写了一个小demo验证下。
测试用模板
执行结果
1.引入依赖坐标 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion4.1.2/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion4.1.2/version/dependency2.获取相关数据的方法 private static Object getValueFromData(String key) {// 根据需要实现此方法以从数据源获取值// 例如从数据库、配置文件或用户输入中获取值MapString, Object textMap new HashMapString, Object();textMap.put(title,《模板》);textMap.put(myName,--尉某人--);textMap.put(today,2023-11-02);ListMap tables new ArrayListMap();MapString, String tableMap new HashMapString, String();tableMap.put(name,尉某人);tableMap.put(age,26);tableMap.put(phone,189*******);tables.add(tableMap);tableMap new HashMapString, String();tableMap.put(name,王某人);tableMap.put(age,28);tableMap.put(phone,186*******);tables.add(tableMap);tableMap new HashMapString, String();tableMap.put(name,张某人);tableMap.put(age,24);tableMap.put(phone,130*******);tables.add(tableMap);textMap.put(tables,tables);return textMap.get(key);}3.解析模板并填充数据 public static void readTemplate() throws Exception {// 读取Word模板文件FileInputStream fis new FileInputStream(C:\\Users\\Desktop\\template.docx);XWPFDocument document new XWPFDocument(fis);// 获取所有段落ListXWPFParagraph paragraphs document.getParagraphs();for (XWPFParagraph paragraph : paragraphs) {ListXWPFRun runs paragraph.getRuns();for (XWPFRun run : runs) {String text run.getText(0);if (text ! null text.startsWith(${)) {String key text.substring(2, text.length() - 1);String value getValueFromData(key).toString(); run.setText(value, 0);}}}// 获取表格ListXWPFTable rowTables document.getTables();for (XWPFTable table : rowTables) {// 遍历表格的每一行for (XWPFTableRow row : table.getRows()) {row.getCell(0).setText(尉某人);row.getCell(1).setText(26);row.getCell(2).setText(おひさしぶりだな);}}// 创建表格并填充数据ListMap tables (ListMap) getValueFromData(tables);int size tables.size();XWPFTable table document.createTable(size1, 3);table.getRow(0).getCell(0).setText(姓名);table.getRow(0).getCell(1).setText(年龄);table.getRow(0).getCell(2).setText(联系方式);for (int i 0; i tables.size(); i) {MapString,String map tables.get(i);XWPFTableRow row table.getRow(i 1);row.getCell(0).setText(map.get(name));row.getCell(1).setText(map.get(age));row.getCell(2).setText(map.get(phone));}// 保存文件FileOutputStream fos new FileOutputStream(C:\\Users\\Desktop\\output.docx);document.write(fos);fos.close();document.close();fis.close();}4.测试结果 public static void main(String[] args){try {readTemplate();System.out.println(执行成功);} catch (Exception e) {e.printStackTrace();}}