您的位置:首页 > 其它

POI3.10读取Excel模板填充数据后生成新的Excel文件

2017-10-10 21:22 465 查看
private final DecimalFormat df = new DecimalFormat("#0.00");

public void test(){
String filePath = "G:\\tmp\\qhjt_yd.xls";
String destPath = "G:\\tmp\\qhjt_yd2.xls";

List<Map<String,Double>> list = getData();
Map<String,String> nsrxx = getBaseInfo();

try {
//读取excel模板
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));

//读取第一个工作簿
HSSFSheet sheet = workbook.getSheetAt(0);

//设置保留公式
sheet.setForceFormulaRecalculation(true);

//定义行与列
HSSFRow row;
HSSFCell cell;

//第3行,第2列
row = sheet.getRow(2);
cell = row.getCell(1);
cell.setCellValue(nsrxx.get("nsrmc"));

//第3行,第4列
row = sheet.getRow(2);
cell = row.getCell(3);
cell.setCellValue(nsrxx.get("bsq"));

//第13行,第3列
row = sheet.getRow(12);
cell = row.getCell(2);
cell.setCellValue(nsrxx.get("ycsm"));

//第14行,第2列
row = sheet.getRow(13);
cell = row.getCell(1);
cell.setCellValue(nsrxx.get("tbr"));

//第14行,第5列
row = sheet.getRow(13);
cell = row.getCell(4);
cell.setCellValue(nsrxx.get("lxdh"));

//从第6行开始读取到第12行
for(int i=5;i<12;i++){
Map<String,Double> mm = list.get(i-5);

//获取行
row = sheet.getRow(i);

//依次设置3,4列
cell = row.getCell(2);
cell.setCellValue(df.format(mm.get("bq")));
cell = row.getCell(3);
cell.setCellValue(df.format(mm.get("tq")));
}

FileOutputStream out = new FileOutputStream(destPath);
workbook.write(out);
out.close();
} catch (IOException ex) {
Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: