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());
}
}
}
}

