我是靠谱客的博主 无情篮球,最近开发中收集的这篇文章主要介绍java 导出文件到Excel 及前端下载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

反序列化文件,将结果导出到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 及前端下载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部