概述
反序列化文件,将结果导出到Excel
public boolean exportToExcel(String exportPath, String FilePath, String projectName) {
try {
// 反序列化文件
File file = new File(FilePath);
Model Model = (Model) KryoSerializer.deserializer(new FileInputStream(file), Model.class);
List<ModelChild> mc = Model.getModelList();
String[] titles = {"标题头1", "标题头1", "标题头1", "标题头1", "标题头1"};
// 创建文件对象
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建表对象
XSSFSheet sheet = workbook.createSheet("例子");
// 创建标题栏(第一行)参数为行下标 行下标从0开始
XSSFRow titleRow = sheet.createRow(0);
// 在标题栏中写入数据
for (int i = 0; i < titles.length; i++) {
// 创建单元格
XSSFCell cell = titleRow.createCell(i);
cell.setCellValue(titles[i]);
}
int rowNum = 1;
for (ModelChild m : mc) {
// 遍历创建行
XSSFRow row = sheet.createRow(rowNum);
row.createCell(0).setCellValue(m.getRuleName());
row.createCell(1).setCellValue(m.getFilepath());
row.createCell(2).setCellValue(m.getLine());
row.createCell(3).setCellValue(m.getDescript());
rowNum++;
}
// 文件保存
workbook.write(new FileOutputStream(exportPath + "-例子.xlsx"));
} catch (IOException e) {
e.printStackTrace();
return false;
}
doFileResponse(HttpServletResponse response, exportPath, projectName);
return true;
}
前端下载
/**
* 文件前端下载
* @param response
* @param filePath 文件所在的路径
* @param projectName 要保存的文件名
*/
private void doFileResponse(HttpServletResponse response, String filePath, String projectName) {
if (filePath != null) {
File file = new File(filePath);
if (!file.exists()) {
throw new ExcelUploadException("文件下载失败");
}
}
InputStream fis;
try {
log.info("要下载的文件地址是:" + filePath);
fis = new BufferedInputStream(new FileInputStream(filePath));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition",
"attachment;filename=" + java.net.URLEncoder.encode(projectName + ".xlsx", "UTF-8"));
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
toClient.write(buffer);
toClient.flush();
toClient.close();
// 删除目录下的文件
FileUtils.deleteQuietly(new File(filePath));
} catch (Exception e) {
e.printStackTrace();
}
}
最后
以上就是无情篮球为你收集整理的java 导出文件到Excel 及前端下载的全部内容,希望文章能够帮你解决java 导出文件到Excel 及前端下载所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复