ReWriteExcel.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package cn.com.qmth.importpaper;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.OutputStream;
  5. import java.util.Date;
  6. import org.apache.logging.log4j.LogManager;
  7. import org.apache.logging.log4j.Logger;
  8. import org.apache.poi.xssf.usermodel.XSSFRow;
  9. import org.apache.poi.xssf.usermodel.XSSFSheet;
  10. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  11. public class ReWriteExcel {
  12. private static Logger logger = LogManager.getLogger(ReWriteExcel.class);
  13. private static String sourceDir = "C:\\Users\\chenken\\Desktop\\temp\\excelDir";
  14. private static String targetDir = "C:\\Users\\chenken\\Desktop\\temp\\targetDir\\";
  15. private static String suff="(2019)";
  16. public static void main(String[] args) {
  17. logger.debug("**********************处理开始");
  18. Date start=new Date();
  19. int errnum=0;
  20. int num=0;
  21. StringBuilder sb=new StringBuilder();
  22. String fname = null;
  23. File dir = new File(sourceDir);
  24. for (File f : dir.listFiles()) {
  25. fname = f.getName();
  26. if (!f.isDirectory() && fname.endsWith(".xlsx")) {
  27. num++;
  28. Date n=new Date();
  29. try {
  30. write(f);
  31. Date et=new Date();
  32. logger.debug("处理成功("+num+"):" + fname+" 耗时:"+(et.getTime()-n.getTime()));
  33. } catch (Exception e) {
  34. errnum++;
  35. sb.append(fname).append(",");
  36. Date et=new Date();
  37. logger.error("处理失败("+num+"):" + fname+" 耗时:"+(et.getTime()-n.getTime())+" "+e.getMessage(), e);
  38. }
  39. }
  40. }
  41. Date end=new Date();
  42. logger.debug("**********************处理结束 耗时:"+(end.getTime()-start.getTime()));
  43. logger.debug("**********************处理出错数:"+errnum);
  44. logger.debug("**********************处理出错课程:"+sb.toString());
  45. }
  46. private static void write(File file) throws Exception {
  47. XSSFWorkbook wb = null;
  48. OutputStream os=null;
  49. try {
  50. wb = new XSSFWorkbook(file);
  51. XSSFSheet sheet = wb.getSheetAt(0);
  52. int rows = sheet.getLastRowNum();
  53. for (int j = 1; j <= rows; j++) {
  54. XSSFRow row = sheet.getRow(j);
  55. String s=row.getCell(1).getStringCellValue();
  56. row.getCell(1).setCellValue(s+suff);
  57. }
  58. os = new FileOutputStream(targetDir+file.getName());
  59. wb.write(os);
  60. } finally {
  61. if (wb != null) {
  62. wb.close();
  63. }
  64. if (os != null) {
  65. os.close();
  66. }
  67. }
  68. }
  69. }