第一步:定义模板
第二步:代码实现如下:
public void createExcelFile() {
LoadWordFileAction loadWordFileAction = new LoadWordFileAction();
Map map = new HashMap<String, Object>();
map.put("$projectName", "XX市工程");
map.put("$buildOrganization", "XX电建设公司");
map.put("$hth", "20151001");
loadWordFileAction.loadExcelFile(map);
}
public void loadExcelFile(Map map) {
String templateFile = this.getRequest().getRealPath("/")
+ "template\\excelTemplate.xls";
String saveDocFile = this.getRequest().getRealPath("/")
+ "template\\desigExcel.xls";
try {
Workbook workbook = new XSSFWorkbook(new FileInputStream(
templateFile));
// 获得指定的表
Sheet sheet = workbook.getSheetAt(0);
// 获得数据总行数
int rowCount = sheet.getLastRowNum();
for (int i = 0; i < rowCount; i++) {
// 获得行对象
Row row = sheet.getRow(i);
if (row != null) {
// 获得本行中单元格的个数
int cellNumrow = row.getLastCellNum();
// 获得本行中各单元格中的数据
for (short columnIndex = 0; columnIndex < cellNumrow; columnIndex++) {
Cell cell = row.getCell(columnIndex);
// 获得指定单元格中数据
Object cellStr = this.getCellString(cell);
if (cellStr != null) {
String cellValue = cellStr.toString();
if (cellValue.indexOf("$") >= 0) {
if (map.get(cellValue) != null
&& !"".equals(map.get(cellValue))) {
//System.out.println(cellValue);
cell.setCellValue(map.get(cellValue)
.toString());
} else {
cell.setCellValue("");
}
}
}
}
}
}
OutputStream out = new FileOutputStream(saveDocFile);
workbook.write(out);
System.out.println("已完成");
} catch (Exception e) {
e.printStackTrace();
}
}