用Java导出为excel表格

导出的是最基础的excel表格,没有任何样式。

1  <input type="button" value="输出到Excel" onclick=‘outputtable()‘ class="btn btn-info    margin-right-20"  style="width:80px;" />
2
3 <script>
4     function outputtable(){
5                         url="outputAll.action"; 
6                         window.open(url);
7
8                 }
9 </script>

在MVC的controller层中,写action

@RequestMapping("/outputEle.action")
    public  String queEle(HttpServletRequest request,
            HttpServletResponse response, TableEle tableEle) throws Exception{
        request.setCharacterEncoding("utf-8");
        response.setContentType("application/json;charset=utf-8");
        String flag = "0";

            HSSFWorkbook workbook = new HSSFWorkbook();//创建对象
            int rowNum=1;
            HSSFSheet sheet = workbook.createSheet("电量表");    //在Excel中建一个工作表,其名为默认值
            String[] name={"时间","ID","负载电量","风能电量","光伏电量","电池电量"};//字段名,就是excel中的标题头
            List<String> list1 = null;
            Map<String,List> map = new HashMap<String, List>();    
            for (int i = 0; i < list.size(); i++) {
                list1 = new ArrayList<String>();
                list1.add(list.get(i).getTime());
                list1.add(list.get(i).getID());
                list1.add(list.get(i).getLoad_PH());
                list1.add(list.get(i).getWind_PH());
                list1.add(list.get(i).getSun_PH());
                list1.add(list.get(i).getBattery_PH());
                map.put(i+"", list1);
            }
            int columnCount = name.length;
            HSSFRow row1 = sheet.createRow(0);        //在索引0的位置创建行
            for (short i = 0; i <columnCount; i++) {    //遍历字段名
                sheet.autoSizeColumn(i);
                String columnName=name[i];
                HSSFCell cell1 = row1.createCell(i);
                cell1.setCellValue(columnName);
            }
            if(columnCount>=1){
                for (int j = 0; j < map.size(); j++) {
                    HSSFRow row = sheet.createRow(j+1);
                    list1 = map.get(j+"");
                    for (short i = 0; i <columnCount; i++) {        //遍历集合
                        HSSFCell cell = row.createCell(i);            //将遍历到的写到单元格
                        sheet.autoSizeColumn(i);
                        cell.setCellValue(list1.get(i));
                    }
                }
            }        

             ByteArrayOutputStream os = new ByteArrayOutputStream();
            workbook.write(os);
              byte[] content = os.toByteArray();
                InputStream is = new ByteArrayInputStream(content);
                // 设置response参数,可以打开下载页面
                response.reset();
                response.setContentType("application/vnd.ms-excel;charset=utf-8");
                response.setHeader("Content-Disposition", "attachment;filename="+ new String(("电量表.xls").getBytes(), "iso-8859-1"));  //excel的表格名称
                ServletOutputStream out = response.getOutputStream();
                BufferedInputStream bis = null;
                BufferedOutputStream bos = null;
                try {
                    bis = new BufferedInputStream(is);
                    bos = new BufferedOutputStream(out);
                    byte[] buff = new byte[2048];
                    int bytesRead;
                    // Simple read/write loop.
                    while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                        bos.write(buff, 0, bytesRead);
                    }
                } catch (final IOException e) {
                    throw e;
                } finally {
                    if (bis != null)
                        bis.close();
                    if (bos != null)
                        bos.close();
                }
                return null;
               }

bizImpl层

    //查找电量中的信息
    @Override
    public List<TableEle> queEle(TableEle tableEle) {
        return eleMapper.queEle(tableEle);
    }
时间: 2024-08-08 09:35:30

用Java导出为excel表格的相关文章

java连接MongoDB查询导出为excel表格

背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计.每次仅仅须要执行下代码,输入一些配置信息就导出为excel表格,直接复制完事,可是水平有限.就仅仅用java写了个. demo下载 下载地址:http://download.csdn.net/detail/musuny/8769499 程序说明 依赖外部jar包 fastjson-1.1.36.j

MVC模式下基于SSH三大框架的java web项目excel表格的导出(不依赖另外的jar包)

最近工作中碰到了需要将web页面的表格内容导出到excel表格并下载到本地的需求.以下是在利用网上资源.与同事探讨下,完成的代码. 首先我们需要有定义好的实体类.以下是截取了项目中用到的部分代码. 1 public class QyggDocuments implements java.io.Serializable { 2 3 private static final long serialVersionUID = -2543382529255041149L; 4 5 private Stri

Asp.net--GridView控件--(1)高亮显示当前所在行,(2)高亮显示单击行,(3)绑定数据库数据,(4)分页,(5)导出到excel表格,(6)首列插入序号

//本页代码中的DB类及方法在http://www.cnblogs.com/Deerjiadelu/p/7252769.html中能查询到 (1)Asp.net--GridView控件--高亮显示当前所在行 protected void gvquery_DataBound(object sender, GridViewRowEventArgs e) { //高亮显示光标所在行 if (e.Row.RowType == DataControlRowType.DataRow)//判断当前行是不是数据

java导出数据Excel总结

//创建获取到JFileChooser的文件名的JTextField public JTextField getTextField(Container c){ JTextField textField = null; for (int i = 0; i < c.getComponentCount(); i++) { Component cnt = c.getComponent(i); if (cnt instanceof JTextField) { return (JTextField) cnt

java 导出成EXCEL或XML

原文:java 导出成EXCEL或XML 源代码下载地址:http://www.zuidaima.com/share/1550463713774592.htm java 导出成EXCEL或XML, 纯手工写的. 复制到eclipse中去直接运行该类,就可以看到效果了. package com.zuidaima.file.exam.test; import java.io.BufferedOutputStream; import java.io.DataOutputStream; import j

Python实现数据库一键导出为Excel表格

依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果  依赖 由于是Python实现的,所以需要有Python环境的支持 Python2.7.11 我的Python环境是2.7.11.虽然你用的可能是3.5版本,但是思想是一致的

将程序中的表格,导出生成excel表格。使用Aspose插件实现

http://www.cnblogs.com/lanyue52011/p/3372452.html这个是原文地址 /// <summary> /// 点击按钮,将内存表导出excel表格! /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Cli

mysql数据库表格导出为excel表格

在本地数据库中操作如下: 由于excel表格的编码是GBK,所以导出时要加一个设置字符编码: select * from 某个表 into outfile 'd:/文件名.xls' CHARACTER SET gbk;

使用PHPExcel实现数据批量导出为excel表格

首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)! <a href="./Process1.php">导出excel表格</a> 后台Process.php页面 /** * 批量导出数据 * @param $arr 从数据库查询出来,即要导出的数据