问题遇到的现象和发生背景
代码:
public void exportWord(List<ContractPo> contractPos, HttpServletResponse response) {
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
URL resource = classLoader.getResource("6.doc");
String templatePath = resource.getPath();
ArrayList<Map<String, String>> list_data1 = new ArrayList<>();
Map<String, String> temp = new HashMap<>();
for (ContractPo contractPo : contractPos) {
temp = new HashMap<>();
temp.put("ContractNo", contractPo.getContractNo());
temp.put("GranterName", contractPo.getGranterName());
if (null != contractPo.getClinchTotleArea()) {
temp.put("ClinchTotleArea", contractPo.getClinchTotleArea().toString());
}
temp.put("GrantePhone", contractPo.getGrantePhone());
if (null != contractPo.getUserId()) {
temp.put("UserId", contractPo.getUserId().toString());
}
list_data1.add(temp);
}
List<Map<String, String>> list_data = list_data1.subList(0, 9);
Export2(list_data, templatePath);
}
public boolean Export2(List<Map<String, String>> list_data,String templatePath) {
boolean result = false;
FileInputStream in = null;
HWPFDocument document = null;
try {
File file = new File("D:\\word\\test.doc");
FileOutputStream out = new FileOutputStream(file);
in = new FileInputStream(templatePath);
document = new HWPFDocument(in);
Range range = document.getRange();
//baoge
TableIterator tableIter = new TableIterator(range);
Table table;
TableRow row;
while (tableIter.hasNext()) {
table = tableIter.next();
int rowNum = table.numRows();
for (int i=0, j=2; i<list_data.size()&&j<rowNum; i++,j++) {
row = table.getRow(j);
if(null!=list_data.get(i).get("ContractNo")){
row.getCell(0).insertBefore(list_data.get(i).get("ContractNo"));
}
if(null!=list_data.get(i).get("GranterName")){
row.getCell(2).insertBefore(list_data.get(i).get("GranterName"));
}
if(null!=list_data.get(i).get("ClinchTotleArea")){
row.getCell(3).insertBefore(list_data.get(i).get("ClinchTotleArea"));
}
if(null!=list_data.get(i).get("GrantePhone")){
row.getCell(4).insertBefore(list_data.get(i).get("GrantePhone"));
}
if(null!=list_data.get(i).get("UserId")){
row.getCell(5).insertBefore(list_data.get(i).get("UserId"));
}
}
}
document.write(out);
out.close();
}catch (IOException e1) {
e1.printStackTrace();
log.error(e1.toString());
}
return result;
}
运行结果及报错内容 :为什么无法打开生成的文档
我的解答思路和尝试过的方法
我想要达到的结果