我是靠谱客的博主 任性猫咪,这篇文章主要介绍【Java】多Sheet导入Excel模板,修改数据,现在分享给大家,希望可以做个参考。

      首先,在pom.xml里加poi的依赖,注意版本,我最开始用的3.09,出现了cloneSheet(0)等方法无法正确识别第一张分页的问题。

   <dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.15</version>
   </dependency>

       暂时是保存到本地,用浏览器下载还没做好。


    package excel;
     
    import java.io.File;
     
     ...
     
    @RestController
    @RequestMapping("/excel")
    public class ExcelController {
     
      private static final Logger logger = LoggerFactory.getLogger(ExcelController.class);
     
      HttpServletResponse response;
      HttpServletRequest request;
     
     @RequestMapping(value = "/", method = RequestMethod.GET)
      public ApiResponse<Void> excel(HttpServletRequest request, HttpServletResponse response) {
        this.request = request;
        this.response = response;
        // excel模板路径
        File fi = new File("D:\excel.xlsx");
        try {
          InputStream in = new FileInputStream(fi);
          // 读取excel模板
          XSSFWorkbook wb = new XSSFWorkbook(in);
            //循环实现生成多sheet
            for (int i = 0; i < 2; i++) {
            // 读取模板内sheet内容
            XSSFSheet sheet;
            if (i == 0) {
              sheet = wb.getSheetAt(0);
            } else {
              sheet = wb.cloneSheet(0);
              //重命名
              String sheetName = "Sheet2";
              wb.setSheetName(1, sheetName);
            }
     
            // 如果这行没有了,整个公式都不会有自动计算的效果的
            sheet.setForceFormulaRecalculation(true);
            // 单元格赋值
            XSSFCell cell1 = sheet.getRow(0).getCell(0);
            String value1 = "第一行第一列";
            // Sheet2赋值
            if (i > 0) {
              value1 = "我在sheet2";
            }
            cell1.setCellValue(value1);
          }
          // 文件生成路径
          FileOutputStream out = new FileOutputStream("D:\export.xlsx");
          wb.write(out);
          out.close();
     
          // fileName
          // String fileName = DateUtil.getTimeStamp() + ".xlsx";
          // 文件路径
          // File fileSrc = new File("D:\export.xlsx");
          //String charset;
          //charset = "UTF-8";
          // 下载模板文件

          // download(fileSrc, fileName, charset);

          // 下载后删除 
          //srcFile.delete(); 
          } catch (IOException e) { 
           logger.error("Exception", e); 
          } catch (Exception e) { 
           logger.error("Exception", e);
          } 
          return null; 
        } 
          //下载 
          //public void download(File file, String fileName, String charset) throws IOException, Exception { 
          // ... 
          //}}
  参考文章:https://blog.csdn.net/xiongshengwu/article/details/53696649

最后

以上就是任性猫咪最近收集整理的关于【Java】多Sheet导入Excel模板,修改数据的全部内容,更多相关【Java】多Sheet导入Excel模板内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部