精华内容
下载资源
问答
  • 首先是web.xml里面的代码,web.xml配置 <servlet> <servlet-name>ExpRetailServlet</servlet-name> <servlet-class&...

    前端代码我就不写了,重点放在Java代码上。
    首先是web.xml里面的代码,web.xml配置

     <servlet>
       <servlet-name>ExpRetailServlet</servlet-name>
       <servlet-class>com.amarsoft.rwa.servlet.ExpRetailServlet</servlet-class>
      </servlet>
      <servlet-mapping>
       <servlet-name>ExpRetailServlet</servlet-name>
       <url-pattern>/servlet/expRetailServlet</url-pattern>
      </servlet-mapping>
    

    然后是servlet里面的代码

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	 HSSFWorkbook wb = new HSSFWorkbook(); 
      	 HSSFSheet sheet = wb.createSheet("Exposure");//创建sheet页并给其取名字
    
    	HSSFFont fontStyle=wb.createFont();//创建字体对象
     	fontStyle.setColor(HSSFColor.WHITE.index);//设置字体为白色
       	fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//字体加粗
     	fontStyle.setFontHeightInPoints((short) 13);//设置字体大小
    
    	HSSFCellStyle cellStyle = wb.createCellStyle();//创建单元格样式对象
             cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
    	cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
     	cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    	cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    	cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中显示	
     	cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
    	cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//填充单元格
     	cellStyle.setFillForegroundColor(HSSFColor.DARK_RED.index);//设置单元格背景色
    	cellStyle.setFont(fontStyle);
    
    	HSSFRow row = sheet.createRow(0);//这里就默认创建第一行
    	row.setHeightInPoints(30);     
       	HSSFCell cell = row.createCell(0);//默认创建第一个单元格   
       	sheet.setColumnWidth(cell.getColumnIndex(), 70 * 70);
       	cell.setCellStyle(cellStyle); //设置单元格样式
       	cell.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型
       	cell.setCellValue("债项编号");//设置单元格内容
    
    	HSSFCell cell1 = row.createCell(1);//默认创建第二个单元格    
       	sheet.setColumnWidth(cell1.getColumnIndex(), 70 * 70);
       	cell1.setCellStyle(cellStyle); //设置单元格样式
       	cell1.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型
       	cell1.setCellValue("产品类型");//设置单元格内容
    
    	HSSFCell cell2 = row.createCell(2);//默认创建第三个单元格    
       	sheet.setColumnWidth(cell2.getColumnIndex(), 70 * 70);
       	cell2.setCellStyle(cellStyle); //设置单元格样式
       	cell2.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型
       	cell2.setCellValue("机构");//设置单元格内容
    
    	HSSFCell cell3 = row.createCell(3);//默认创建第四个单元格  
      	sheet.setColumnWidth(cell3.getColumnIndex(), 70 * 70);
       	cell3.setCellStyle(cellStyle); //设置单元格样式
       	cell3.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型
       	cell3.setCellValue("客户PD");//设置单元格内容
    
    	HSSFCell cell4 = row.createCell(4);//默认创建第五个单元格  
       	sheet.setColumnWidth(cell4.getColumnIndex(), 70 * 70);
       	cell4.setCellStyle(cellStyle); //设置单元格样式
       	cell4.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型
       	cell4.setCellValue("客户LGD");//设置单元格内容
    
    	try {
    		//调用浏览器的下载 选择路径
    		ByteArrayOutputStream fos = new ByteArrayOutputStream();
        		wb.write(fos);
        		byte[] retArr = fos.toByteArray();
        		OutputStream os = response.getOutputStream();
        		response.reset();   
        		response.setHeader("Content-Disposition", "attachment; filename=exportRetail.xls");//要保存的文件名   
        		response.setContentType("application/octet-stream; charset=utf-8");   
        		os.write(retArr);   
        		os.flush();
    	}catch (Exception e) {
        		e.printStackTrace();
       	}
    }
    

    这个是导出下载出来的Excel图片:
    在这里插入图片描述

    展开全文
  • java web Excel文件导出

    2018-05-28 10:17:22
    提供列表查询匹配的excel数据导出,引用该工具类,只需要在页面上引用导出的自定义标签,然后按照提供的使用文档进行配置,后端action层或者controller层,实现其数据加载的抽象方法即可(使用方式也在文档中说明)...
  • 一、JSP文件 . . toolbar ="#toolbar" pagination ="true" pageList ="[5,10,15]" pageSize ="15" >  .  Name ...  tr > toolbar” > . exportExcel()” > Excel

    一、JSP 文件

    < div id="content" >

       <table id="dg" title="Menu Hits" class="easyui-datagrid" style="height:600px" url="${ctx}/json/getName.action"

           toolbar ="#toolbar" pagination ="true" pageList ="[5,10,15]" pageSize ="15" > 

    < thead>

        <tr> <th field ="name" width="100">Name</th >  ... </tr>

    </thead >

    <div id=”toolbar”>

        <a href=”class=”easyui-linkbutton” iconCls=”icon-save” plain=”true” onClick=”exportExcel()”> Excel </a>

    </div> 

    <script type=”text/javascript”> 

        function exportExcel(){

           var date=$(“#date”).datebox(“getValue”);

           var text=$(“#txtId”).val();

           location.href = “exportExcel.action?date=”+date+”&text=”+text;

    </script>

    </div>


    二、struts 文件

    <action name=”exportExcel” class=”exportAction” method=”exportExcel”>

      <result name=”success” type=”stream” >

        <param name=”contentType”>application/vnd.ms-excel</param>

        <param name=”inputName”> excelStream</param>

        <param name=”contentDispostion”>attachment;filename=”$(fileName).xls”</param>

        <param name=”bufferSize”>1024</param>

     </result > 

    </action> 


    三、java 文件

      public String exportExcel() {

        searchInput = new SysName();        // SysName 是一个 Model 对应数据库文件

        searchInput.setName(name);           // JSP 中传送的 parameter

        List name= nameService.search(searchInput, date);     // 读取数据库

        HSSFWorkbook workbook = getWorkbook(name, date);

     

        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        workbook.write(baos);

        baos.flush();

        byte[] aa = baos.toByteArray();

        excelStream = new ByteArrayInputStream(aa, 0, aa.length);

        baos.close();

        return SUCCESS;

    }

    1. jsp 文件中通过 *.action 传递参数,java 文件中无法获取的问题 (原因:对应的 ExportAction 类中没有设置 get、set 方法。)


    2. getWorkbook()  -  生成EXCEL表

        HSSFWorkbook workbook = new HSSFWorkbook();

        HSSFSheet sheet1 = workbook.createSheet("Total"); //包含两个sheet页

        HSSFSheet sheet2 = workbook.createSheet("Details");

        HSSFRow row = sheet1.createRow(0);

        HSSFCell cell = row.createCell(i);

    展开全文
  • web项目-Excel文件导出

    千次阅读 2017-11-24 17:29:40
    文件导出是在web项目中常用的功能之一。在这里我也谈一下本人的拙见。 此次我遇到的是从easyUI框架中查询数据的导出,当然,不管框架怎么变,万变不离其宗,导出功能学懂一个就差不多够用了。 这里我的前台查询条件...

    跳坑留下的伤疤都是我们程序员最好的勋章。

    文件导出是在web项目中常用的功能之一。在这里我也谈一下本人的拙见。

    此次我遇到的是从easyUI框架中查询数据的导出,当然,不管框架怎么变,万变不离其宗,导出功能学懂一个就差不多够用了。

    这里我的前台查询条件是name和age。先查询,前台看到信息后,才可以导出。

    按照我找博客的习惯,直接上代码。

    后台导出方法:

    /*
         * 导出文件方法
        */
        @SuppressWarnings("unchecked")
    	@RequestMapping(value = "/getfile.do")
        public @ResponseBody void getfile (HttpServletRequest request,HttpServletResponse response) throws IOException {
            String data1= request.getParameter("data");
            
            List<String> userIdList = JSON.parseArray(data1, String.class);
            List<SPSSUserIdTemporaryTable> UserIdlist = new ArrayList<SPSSUserIdTemporaryTable>();
        	
        	spssCustomerService.createUserIdTemporaryTable(UserIdlist);
            String Name=request.getName("Name");
            String Age=request.getAge("Age");
    	//调用查询方法,拿到数据。(可以封装前台使用的查询方法,共用一个,防止页面显示和导出数据不一致)
     List<CustomerEnterpriseData> dataList = selectEnterprise(Name,Age);
    
       	try {
                //List dataList = dao.getData(bean);
                String[] sheet = new String[2];
                sheet[0] = "个人信息表";   //工作区名称
                sheet[1] = "个人信息统计表";  //标题名称
                //字段自己根据数据长度实际情况设置
                //设置字段及字段宽度(类型暂定为2,以后可扩展)
    		//设定列名、列宽
                String[][] field = new String[][]{
                        {"维度", "车险数量"}
                        ,{"5000", "5000"}};
                List<List> datas = new ArrayList();
                //为了通用性,不能直接设置对象,所以内嵌List集合
                for(CustomerEnterpriseData b : dataList){
                    List contents = new ArrayList();//存储对象属性数据
                    contents.add(b.getName());
                    contents.add(b.getAge());
                    
                    datas.add(contents);//添加到数据集合里
                }
                PoiBuildExcel pbe = new PoiBuildExcel(sheet, field, datas);
                HSSFWorkbook workbook = pbe.exportExcel();
                response.reset();
                response.setCharacterEncoding("utf-8");
                response.setCharacterEncoding("utf-8");
                String disposition = "attachment;filename="+java.net.URLEncoder.encode("person.xls", "UTF-8");
                response.setHeader("Content-Disposition", disposition);// 设定输出文件头
                response.setContentType("application/msexcel"); // 设定输出类型
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                workbook.write(baos);
                baos.flush();
                byte[] aa = baos.toByteArray();
                InputStream is = new ByteArrayInputStream(aa, 0, aa.length);
                // 得到响应对象的输出流,用于向客户端输出二进制数据
                ServletOutputStream sos = response.getOutputStream();
                byte[] data = new byte[2048];
                int len = 0;
                while ((len = is.read(data)) > 0) {
                    sos.write(data, 0, len);
                }
                is.close();
                sos.close();
                baos.close();
    
    
            } catch (Exception e) {
                e.printStackTrace();
               
            }

    前端jsp代码:

    <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-export" οnclick="export_exl()" >导出</a>
        	 <form  id="fm_excel_export"  method="post" >
                <input type = "hidden" id = "hd_excel_data"  name = "data" >
                <input type = "hidden" id = "Name1"  name = "Name" >
                <input type = "hidden" id = "Age1"  name = "Age" >
               
              </form>

    前端导出按钮触发的方法:

    function export_exl(){
        var data = JSON.stringify($('#dg').datagrid('getRows'));
    
        var Name=$("#Name").combobox("getValue");
        var Age=$("#Age").combobox("getValue");
       
        var userIdListJson = [];
        $($("#cc").combotree("tree").tree("getChecked")).each(function(i,n){
            if ($(this).tree('isLeaf', n.target)) {
                userIdListJson.push(n.id);
            }
        })
        if (userIdListJson.length === 0){
            var userId = $("#userId").val();
            userIdListJson.push("a");
        }
        
        userIdListJson = JSON.stringify(userIdListJson);
        if(data.length>2){
            $('#hd_excel_data') .val(userIdListJson) ;
            $("#Name1").val(Name);
            $("#Age1").val(Age);
            $('#fm_excel_export').form({
                url:"../spss/getfile.do",
                onSubmit: function(){
                },
                success:function(data){
                }
            });
            $('#fm_excel_export').submit();
            return;
        }else{
            alert("请先进行查询操作!");
            return;
        }
    
    }

    可能代码有些地方比较多余,是因为有些代码的私密性,从而进行了一定程度的修改,忘大家见谅。
    这里面源码对操作做了很多的判断等等,希望大家看的时候多理解一下。
    我在这里遇到的问题是:
    1、第一次是采用前台传递json串给后台进行解析,然后写入Excel表文件,但是后来发现当前台数据量大的时候,就会出现错误,因此才会封装调用前台的查询方法,直接从数据库拿取数据。
    
    2、from表单提交不会刷新。刚开始没有手动写入,所以在form表单提交一次后,就算是我改变了查询条件,导出来的数据也不会再改变,所以迫于无奈选择了将查询条件手动写入form表单。
    
    总结不好,请多多包涵!如有更好的见解,愿洗耳恭听!


    
    
    
    
    展开全文
  • web导出excel文件的几种方法   KimmKing kimmking@163.com 2009年9月4日10:19:09   总的来说,两种方法:服务器端生成和浏览器端生成。   服务器端生成就是:根据用户请求,获取相应的数据,使用poi/jxl,...

    经常有人问怎么导出数据到excel文件。

     

    web导出excel文件的几种方法

     

    KimmKing

    kimmking@163.com

    20099410:19:09

     

    总的来说,两种方法:服务器端生成和浏览器端生成。

     

    服务器端生成就是:根据用户请求,获取相应的数据,使用poi/jxl, jacob/jawin+excel,或是用数据拼htmltable或是cvs纯文本的数据格式等。然后按.xls或是.cvs格式的文件的形式返回给用户,指定Content-Type:application/vnd.ms-excel ,浏览器就会提示要下载的文件是excel文件。

    poi/jxl, jacob/jawin生成的是excelbiff格式。html/csv的是文本格式,不另存为excel文件,很多excel功能是用不了的。jacob/jawin需要服务器端是windows系统,且安装了excel2000以上版本。poi/jxlhtml/csv方式的话,服务器端可以跨平台。

     

    浏览器端生成excel文件还没有特别完善的方案,这是因为js无法处理二进制。大概有以下几个方案,各有利弊。

    1.       activex方式:使用js/vbs调用excel对象,http://setting.iteye.com/blog/219302,有个extjsgridpanel导出为excel的例子。            ie+excel

    2.       ie命令方式:将html或是csv输出到openwindow,然后使用execCommandsaveas命令,存为csvxls                                               (ie6 only)

    3.       服务器端中转方式:将htmltable或是拼接的csv传到服务器端,服务器端再按照Content-Type:application/vnd.ms-excel返回,浏览器就会按excel方式处理。与服务器端拼接相比,少了一次取数操作。                                (all)

    4.       data协议方式:对于支持data协议的浏览器,可以将html或是csv先用js base64处理,然后前缀data:application/vnd.ms-excel;base64,,即可使浏览器将其中的数据当做excel来处理,浏览器将提示下载或打开excel文件,可惜的是ie不支持。extjs的官网有一个gridplugin,实现导出xhtml格式的伪excel文件,就是这么做的。   (except IE)

     

    浏览器端只有第一种方案导出的是真正的biff格式的excel文件,其他方式都是文本格式。activex方式只能在windows平台的ie浏览器使用,而且需要降低ie的安全性,所以应用比较有限。复杂的excel文件,还是在服务器端用poi/jxl生成excel比较好。如果浏览器固定位ie6,浏览器端方式2是最好的方案。如果要降低服务器端cpu的计算压力,客户端方案3可行,而且跨平台(比poi/jxl方式少了取数和生成二进制文件)。如果是非ie浏览器,方案4也不失为一种好方法。

     

     

    ps: 还有一个方案,就是让安装了ieexcel的用户在网页上右键,点击“导出到 Microsoft Excel”,然后可以选择要导出的table区域,点“导入”按钮,完成导入。

     

     

     

    展开全文
  • 实现导出文件时 弹出下载框 主要是 设置成 文件流 stream 类型的response. 浏览器就会识别出 文件下载弹出 下载框。 这里总结三个方式 sturts框架中弹出 详见  java通过struts实现web中的文件下载 其中关键的...
  • java web 导出Excel表格

    2020-04-21 16:14:43
    java web 导出Excel表格 第一步:点击导出按钮时跳到导出的servlet 第二步: 导出后的结果:列和行的下标为0起 实际操作:这其中有很多跟Excel里面的属性,可以直接设置,具体请看api文档。 package ...
  • 需求说明报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,...
  • 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出Excel采用NPOI组件。其业务场景,主要是列表页(如会员信息,订单信息等)表格数据导出,如表格数据...
  • web导出excel文件的几种方法(转)

    千次阅读 2010-04-19 17:13:00
    总的来说,两种方法:服务器端生成和浏览器端生成。服务器端生成就是:根据...然后按.xls或是.cvs格式的文件的形式返回给用户,指定Content-Type:application/vnd.ms-excel ,浏览器就会提示要下载的文件是excel文件
  • .NET中将数据导出导出Excel文件

    千次阅读 2012-10-31 17:11:36
    下面就通过一个示例向大家演示在WinForm程序中如何将DataGridView中的数据导出Excel文件,从DataSet中将数据导出为Excel的方法跟这个差不多的,这里就不再介绍了。 Private void DataGridViewToE
  • SSH2 POI导出EXCEL表格 1.首先导入poi的jar包 HSSFWorkbook :工作簿,代表一个excel的整个文档 HSSFSheet:工作表 HSSFRow :行 HSSFCell:单元格 HSSFCellStyle :单元格样式 HSSFFont:字体 ...
  • web里面的table导出excel方法: 1,纯粹用js实现,仅限本机有安装excel的情况直接在excel中打开 优点:实现简单,几行js即可实现 缺点:用户体验不好且兼容性差 实现方法: //js代码 //导出到excel  function...
  • 报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,下面通过...
  • 我在html中有一个表格,并且我想在用户单击导出按钮后将该表格导出到Excel工作表。我得到了我的表中的导出和数据按钮。但它没有得到导出。 请帮助我。下文提到的是我的代码导出html表格到Excel不起作用$(document)....
  • 导入导出excel文件

    2017-03-08 23:26:55
    场景描述 将数据库表中的数据按照定义的EXCEL模板进行导出,下载到本地;...选择一个excel文件,点击按钮,则把excel数据导入数据库表。 注意 导入文件的内容数据格式如下,第一行
  • Web导出excel的几种方法

    千次阅读 2016-04-28 10:14:08
    在项目中我们经常遇到需要将报表导出excel下载保存下来,在不同的要求和不同的资源情况下我们有不同的处理方式。在这里我将谈谈我所遇到的几种情况和遇到的一些问题。  总的来说可以分为:服务器端生成和浏览器...
  • jsp的话就是添加一个监听按钮,触发事件。例如在input中添加onclick="window.location.href='/IoTSystem/servlet/ExportServlet'"。读者注意此处的url是对应web配置的信息。导入表格显示的还在琢磨,有实现的朋友...
  • 页面HTML代码写法——添加到处Excel按钮 &amp;...导出Excel&quot;&amp;gt; selectController.js ——添加内容 //数据导出到excel $scope.exports0 = function () { userServ

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,964
精华内容 3,585
关键字:

web导出按钮导出excel文件