使用POI操作Excel修改模板(批量替换excel中的数据)
2017-12-14 10:00
645 查看
使用POI操作Excel修改模板(批量替换excel中的数据)
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created by sunming on 2017/12/13. */ public class ExcelUtils { /** * 替换Excel模板文件内容 * @param item 文档数据 * @param sourceFilePath Excel模板文件路径 * @param targetFilePath Excel生成文件路径 */ public static boolean replaceModel(Map item, String sourceFilePath, String targetFilePath) { boolean bool = true; try { POIFSFileSystem fs =new POIFSFileSystem(new FileInputStream(sourceFilePath)); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); Iterator rows = sheet.rowIterator(); while(rows.hasNext()){ HSSFRow row = (HSSFRow) rows.next(); if(row!=null) { int num = row.getLastCellNum(); for(int i=0;i<num;i++) { HSSFCell cell= row.getCell(i); if(cell!=null) { cell.setCellType(HSSFCell.CELL_TYPE_STRING); } if(cell==null || cell.getStringCellValue()==null) { continue; } String value= cell.getStringCellValue(); if(!"".equals(value)) { Set<String> keySet = item.keySet(); Iterator<String> it = keySet.iterator(); while (it.hasNext()) { String text = it.next(); if(value.equalsIgnoreCase(text)) { cell.setCellValue((String)item.get(text)); break; } } } else { cell.setCellValue(""); } } } } // 输出文件 FileOutputStream fileOut = new FileOutputStream(targetFilePath); wb.write(fileOut); fileOut.close(); } catch (Exception e) { bool = false; e.printStackTrace(); } return bool; } // 测试 public static void main(String[] args) { Map item = new HashMap(); item.put("L-00001","L-00012"); item.put("L-00002","L-00013"); item.put("L-00003","L-00014"); String path = "C:\\Users\\sunming\\Desktop\\22\\22.xls"; String path2 = "C:\\Users\\sunming\\Desktop\\22\\33.xls"; replaceModel(item, path, path2); } }
相关文章推荐
- 使用POI操作Excel修改模板(批量替换excel中的数据并判断excel版本)
- java操作Excel之POI(6)使用POI实现使用模板批量添加数据
- java操作Excel之POI(5)利用POI实现使用模板批量导出数据
- 使用poi通过excel模板导出excel数据
- poi操作excel导出是否修改模板文件内容的问题
- 使用POI操作Excel将数据导入mysql
- java操作Excel之POI(4)利用POI实现数据的批量导出
- 使用POI操作Excel时对事先写入模板的公式强制执行
- Apache POI 第七讲之利用 POI 技术实现使用模板批量添加数据
- 使用POI操作excel向模板填信息
- 使用POI操作Excel时对事先写入模板的公式强制执行
- JAVA使用poi进行EXCEL模板导入导出,XSSFCell数据类型
- java中使用poi导出数据到EXCEL模板中。
- java中使用poi导出excel表格数据并且可以手动修改导出路径
- 使用poi通过excel模板导出excel数据
- 在Struts+Spring+ibaits中使用poi进行excel操作时候的问题
- 使用POI操作Excel文件(二)
- asp.net操作Excel(向excel模板添加数据)
- Java操作Excel之理解JXL--读取Excel模板动态写入数据并生成Excel