首先,在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模板内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复