Java操作Excel之下载模板

Java操作Excel之下载模板

本文章描述使用Java开发语言来下载服务器上已存在的模板案例,下篇文章会具体描述读取数据库数据到指定的excel模板。大体分为以下三部分:

  • 读取服务器上的 Excel模板路径
  • 设置http请求的相应头和数据类型
  • 读取文件流,输出流

前台参数

参数含义
templateName模板名称
fileName下载后的文件名称

后台代码

public static final void downloadTemplate(HttpServletRequest request, HttpServletResponse response) {
        // 模板名称
        String templateName = request.getParameter("templateName");
        // 下载文件名
        String fileName = request.getParameter("fileName");
        try {
            fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        // 获取模板位置,读取数据库(也可以读取配置文件或写死)
        String templatePath = PubConfig.getProperty("EXCEL_TEMPLATE_PATH");
        // 实际位置
        String path = templatePath + File.separator + templateName;
        System.out.println(path);
        // 1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
        response.setContentType("multipart/form-data");
        // 2.设置文件头:最后一个参数是设置下载文件名
        response.setHeader("Content-Disposition", "attachment;fileName="
                + fileName);
        response.addHeader("Content-Type", "application/vnd.ms-excel");
        OutputStream out;
        // 通过文件路径获得File对象(假如此路径中有一个download.pdf文件)
        File file = new File(path);
        try {
            FileInputStream inputStream = new FileInputStream(file);
            // 3.通过response获取OutputStream对象(out)
            out = response.getOutputStream();
            byte[] buffer = new byte[512];
            int b = inputStream.read(buffer);
            while (b != -1) {
                // 4.写到输出流(out)中
                out.write(buffer, 0, b);
                b = inputStream.read(buffer);
            }
            inputStream.close();
            out.close();
            out.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

是不是简单易懂


Java中实现Excel模板下载通常涉及到使用第三方库来创建和操作Excel文件。常用的库有Apache POI和EasyExcel等。下面是一个简单的使用Apache POI实现Excel模板下载的示例: 1. 首先,你需要将Apache POI库添加到你的项目依赖中。 2. 然后,你可以创建一个方法来生成Excel文件,并根据需要设置样式和模板。 3. 最后,通过文件输出流将Excel文件发送到客户端浏览器,实现下载。 下面是一个使用Apache POI创建简单Excel模板的代码示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; public class ExcelTemplateDownload { public static void downloadTemplate(HttpServletResponse response) { // 创建Excel工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("模板"); // 创建标题行 Row titleRow = sheet.createRow(0); Cell titleCell = titleRow.createCell(0); titleCell.setCellValue("标题"); // 写入数据 Row dataRow = sheet.createRow(1); Cell dataCell = dataRow.createCell(0); dataCell.setCellValue("数据"); // 写入样式 CellStyle style = workbook.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); titleCell.setCellStyle(style); // 自动列宽 for (int i = 0; i < 2; i++) { sheet.autoSizeColumn(i); } // 将Excel文件写入到响应对象中 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\"template.xlsx\""); try (FileOutputStream outputStream = new FileOutputStream(response.getOutputStream())) { workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } } } ``` 使用这个方法,你可以通过调用`downloadTemplate(response)`在你的Servlet或Controller中实现Excel模板下载功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值