怎么将数据库数据编程Excel表格

 我来答
云南新华电脑学校
2018-06-30 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部

主要步骤为:

  • 创建表格

  • 生成表头(将列名生成出来)

  • 在表格中插入数据

  • 编写一个浏览器下载这个表格的方法

  • 一下为源码

  • public void downloadExcel(List<Object> list) throws IOException {        if (list == null) {            return;

  •        } else if (list.size() == 1) {            return;

  •        }        // 得到结果,生成Excel文件

  •        HSSFWorkbook hssfWorkbook = new HSSFWorkbook();

  •        HSSFSheet sheet = hssfWorkbook.createSheet("表格数据");        // 生成表头

  •        HSSFRow headRow = sheet.createRow(0);

  •        headRow.createCell(0).setCellValue("表格列1");

  •        headRow.createCell(1).setCellValue("表格列2");

  •        headRow.createCell(2).setCellValue("表格列3");

  •        headRow.createCell(3).setCellValue("表格列4");

  •        headRow.createCell(4).setCellValue("表格列5");

  •        headRow.createCell(5).setCellValue("表格列6");

  •        headRow.createCell(6).setCellValue("表格列7");        // 将数据插入表中

  •        for (Object obj : list) {

  •            HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);

  •            dataRow.createCell(0).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(1).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(2).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(3).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(4).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(5).setCellValue("obj对象的对应列名属性");

  •            dataRow.createCell(6).setCellValue("obj对象的对应列名属性");

  •        }        // 通过浏览器下载导出

  •        // 设置表头信息

  •        ServletActionContext.getResponse().setContentType("application/vnd.ms-excel");

  •        String filename = "表格数据.xls";

  •        String agent = ServletActionContext.getRequest().getHeader("user-agent");

  •        filename = FileUtils.encodeDownloadFilename(filename, agent);

  •        ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment;filename=" + filename);


  •        ServletOutputStream outputStream = ServletActionContext.getResponse().getOutputStream();

  •        hssfWorkbook.write(outputStream);        // 关闭

  •        hssfWorkbook.close();

  •    }//下载浏览器识别工具类一个package com.echo.maven.utils;import java.io.IOException;import java.net.URLEncoder;import sun.misc.BASE64Encoder;public class FileUtils {

  •        /**

  •         * 下载文件时,针对不同浏览器,进行附件名的编码

  •         *

  •         * @param filename

  •         *            下载文件名

  •         * @param agent

  •         *            客户端浏览器

  •         * @return 编码后的下载附件名

  •         * @throws IOException

  •         */

  •        public static String encodeDownloadFilename(String filename, String agent)                throws IOException {            if (agent.contains("Firefox")) { // 火狐浏览器

  •                filename = "=?UTF-8?B?"

  •                        + new BASE64Encoder().encode(filename.getBytes("utf-8"))

  •                        + "?=";

  •                filename = filename.replaceAll("\r\n", "");

  •            } else { // IE及其他浏览器

  •                filename = URLEncoder.encode(filename, "utf-8");

  •                filename = filename.replace("+"," ");

  •            }            return filename;

  •        }

  • }123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式