docx文檔操作
@RequestMapping(value = "exportRentalhouse",produces = {"application/json;chatset=utf-8"},method = RequestMethod.GET) @ApiOperation(value = "導出出租房屋",notes = "導出出租房屋") public AjaxResult exportRentalhouse(HttpServletRequest request, @RequestParam Map<String,Object> map,HttpServletResponse response) throws Exception { try { InputStream is = new FileInputStream(ResourceUtils.getFile("classpath:static/doc/rentahouse.docx")); // InputStream is = new FileInputStream("E:\\desktop\\doc\\rentahouse.docx"); XWPFDocument doc = new XWPFDocument(is); List<XWPFTable> tables = doc.getTables(); FileOutputStream outStream = null; OutputStream os = response.getOutputStream(); String fileName = "出租房屋"+getTime(); response.setContentType("application/octet-stream; charset=utf-8");//導出word格式 response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"), "ISO8859-1")+".docx"); Map<String,Object> mm1 = new HashMap<String,Object>(); Map<String,Object> mm2 = new HashMap<String,Object>(); List<Map<String,Object>> listmap = new ArrayList<>(); mm1.put("rentaltleid","a5ba1e17ec6647eda347becad01aa3c3"); mm2.put("rentaltleid","9f61b54c5a2c4f9482a218183f5824de"); listmap.add(mm1); listmap.add(mm2); if(listmap.size() > 1){ OutputStream ot = new FileOutputStream(ResourceUtils.getFile("classpath:static/doc/temp.docx")); for (int i = 1;i < listmap.size();i++) { doc.createTable(); CTTbl ab = CTTbl.Factory.newInstance(); ab.set(doc.getTables().get(0).getCTTbl()); IBody iBody = doc.getTables().get(0).getBody(); XWPFTable newTable = new XWPFTable(ab, iBody); doc.setTable(1,newTable); } doc.write(ot); doc.close(); is.close(); InputStream is2 = new FileInputStream(ResourceUtils.getFile("classpath:static/doc/temp.docx")); XWPFDocument doc2 = new XWPFDocument(is2); List<XWPFTable> tables2 = doc2.getTables(); for (int i = 0;i < listmap.size();i++) { List<Map<String,Object>> lm = appBusRentalhouseService.findRentalhouseContentList(listmap.get(i)); tables2.get(i).getRows().get(2).getTableCells().get(1).setText((String)lm.get(0).get("numberplate")); tables2.get(i).getRows().get(2).getTableCells().get(3).setText((String)lm.get(0).get("lesseename")); tables2.get(i).getRows().get(2).getTableCells().get(5).setText((String)lm.get(0).get("lesseephone")); tables2.get(i).getRows().get(3).getTableCells().get(1).setText((String)lm.get(0).get("idcard")); tables2.get(i).getRows().get(4).getTableCells().get(1).setText((String)lm.get(0).get("address")); tables2.get(i).getRows().get(5).getTableCells().get(1).setText((String)lm.get(0).get("workunit")); tables2.get(i).getRows().get(6).getTableCells().get(1).setText((String)lm.get(0).get("number")); tables2.get(i).getRows().get(7).getTableCells().get(1).setText((String)lm.get(0).get("startdate")); tables2.get(i).getRows().get(7).getTableCells().get(3).setText((String)lm.get(0).get("enddate")); tables2.get(i).getRows().get(8).getTableCells().get(1).setText((String)lm.get(0).get("rent")); tables2.get(i).getRows().get(8).getTableCells().get(3).setText((String)lm.get(0).get("waterrent")); tables2.get(i).getRows().get(9).getTableCells().get(1).setText((String)lm.get(0).get("electriccharge")); tables2.get(i).getRows().get(10).getTableCells().get(1).setText((String)lm.get(0).get("otherfees")); tables2.get(i).getRows().get(12).getTableCells().get(0).setText((String)lm.get(0).get("detailedlist")); tables2.get(i).getRows().get(31).getTableCells().get(4).setText((String)lm.get(0).get("writetime")); tables2.get(i).getRows().get(31).getTableCells().get(1).setText((String)lm.get(0).get("title")); tables2.get(i).getRows().get(31).getTableCells().get(4).setText((String)lm.get(0).get("eventtime")); } doc2.write(os); doc2.close(); is2.close(); os.close(); }else{ List<Map<String,Object>> lm = appBusRentalhouseService.findRentalhouseContentList(listmap.get(0)); tables.get(0).getRows().get(2).getTableCells().get(1).setText((String)lm.get(0).get("numberplate")); tables.get(0).getRows().get(2).getTableCells().get(3).setText((String)lm.get(0).get("lesseename")); tables.get(0).getRows().get(2).getTableCells().get(5).setText((String)lm.get(0).get("lesseephone")); tables.get(0).getRows().get(3).getTableCells().get(1).setText((String)lm.get(0).get("idcard")); tables.get(0).getRows().get(4).getTableCells().get(1).setText((String)lm.get(0).get("address")); tables.get(0).getRows().get(5).getTableCells().get(1).setText((String)lm.get(0).get("workunit")); tables.get(0).getRows().get(6).getTableCells().get(1).setText((String)lm.get(0).get("number")); tables.get(0).getRows().get(7).getTableCells().get(1).setText((String)lm.get(0).get("startdate")); tables.get(0).getRows().get(7).getTableCells().get(3).setText((String)lm.get(0).get("enddate")); tables.get(0).getRows().get(8).getTableCells().get(1).setText((String)lm.get(0).get("rent")); tables.get(0).getRows().get(8).getTableCells().get(3).setText((String)lm.get(0).get("waterrent")); tables.get(0).getRows().get(9).getTableCells().get(1).setText((String)lm.get(0).get("electriccharge")); tables.get(0).getRows().get(10).getTableCells().get(1).setText((String)lm.get(0).get("otherfees")); tables.get(0).getRows().get(12).getTableCells().get(0).setText((String)lm.get(0).get("detailedlist")); tables.get(0).getRows().get(31).getTableCells().get(4).setText((String)lm.get(0).get("writetime")); tables.get(0).getRows().get(31).getTableCells().get(1).setText((String)lm.get(0).get("title")); tables.get(0).getRows().get(31).getTableCells().get(4).setText((String)lm.get(0).get("eventtime")); doc.write(os); doc.close(); is.close(); os.close(); } return success(AjaxResult.Type.SUCCESS, "導出成功!", null); } catch (Exception e) { e.printStackTrace(); return error(AjaxResult.Type.ERROR,"導出失敗",null); } }
doc文檔操作
public static void main(String[] args) throws IOException {
HWPFDocument hwpfDocument = new HWPFDocument(new FileInputStream(new File("文件地址.doc")));
Range range = hwpfDocument.getRange();
TableIterator it = new TableIterator(range);
while (it.hasNext()) {
Table tables = it.next();
for (int i = 0; i < tables.numRows();i++){
TableRow row = tables.getRow(i);
for (int j = 0; j < row.numCells();j++){
System.out.println(i+"行"+j+"列:"+row.getCell(j).text());
}
}
}
}