java 如何导出Execl

在js 中 获取ID 传到前台 :

      //导出数据
function exportExcel() {
    var rows = $('#grid').datagrid('getSelections');
if (rows.length == 0 ) {
$.messager.alert('错误提示', "请选择至少一条记录进行导出!", 'error');
return;
}
var ids ='';

for(var i=0;i<rows.length;i++) {
        if(i == 0) {
            ids = rows[i].ID;
        }else {
            ids += ','+rows[i].ID;
        }
    }

    window.open("applyInvoiceAction_exportExcel?id=" + ids);
}

 

后台 Action :

service 中:

public void exportExcel(String ids ,String filePath)throws DBPServiceException {
        WritableWorkbook workbook = null;
        try {
            List listExcel = new ArrayList();

            List list1 = this.queryList("applyInvoice.queryExport", ids);//根据id查出的数据
            for(int i=0;i<list1.size();i++) {
                // 将listZP。get(i)由map转换为list
                Map map = (Map) list1.get(i);
                List listValue = new ArrayList();  
                Iterator it = map.keySet().iterator();
                listValue.add(i+1);
                while (it.hasNext()) {  
                       String key = it.next().toString();
                       if("".equals(map.get(key)) || null == map.get(key)) {
                           listValue.add("");
                       }else {
                       listValue.add(map.get(key));  
                       }
                }
                listExcel.add(listValue);
            }
            if (listExcel != null ) {
                workbook = Workbook.createWorkbook(new File(filePath));
                WritableSheet sheet = null;
                sheet = workbook.createSheet("sheet1", 0);
                Label label = null;
                
                List<String> listTitle = new ArrayList();//单头
                listTitle.add("序号");
                listTitle.add("开票申请单号");
                listTitle.add("应收单号'");
                listTitle.add("开票状态");
                listTitle.add("项目名称");
                listTitle.add("客户名称");
                listTitle.add("费用月份");
                listTitle.add("开票原因");
                listTitle.add("发票方向");
                listTitle.add("费用类别");
                listTitle.add("扎帐金额");
                listTitle.add("金额调整");
                listTitle.add("调整原因");
                listTitle.add("发票方向");
                listTitle.add("发票来源");
                listTitle.add("发票类型");
                listTitle.add("开票方式");
                listTitle.add("购买方");
                listTitle.add("购买方税号");
                listTitle.add("销售方");
                listTitle.add("销售方账号");
                listTitle.add("申请人");
                listTitle.add("申请时间");
                for(int i=0;i<listTitle.size();i++) {//将单头的数据写到Excel 上,从0开始也就是Excel 的第一行
                    //sheet.mergeCells(i, 0, i, 1);合并 第几列第几行 到第几列第几行
                    label = new Label(i,0,(String)listTitle.get(i));
                    sheet.addCell(label);
                }
            for (int rows = 1; rows < listExcel.size()+1; rows++) {//将数据写到Excel 上 ,从1开始也就是Excel 的二行
                    for(int cols=0;cols<((List)listExcel.get(rows-1)).size();cols++) {
                        label= new Label(cols,rows,((List)listExcel.get(rows-1)).get(cols)+"");
                        sheet.addCell(label);
                }
            }
            workbook.write();

            }
        
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if (workbook != null ){
                try {
                    workbook.close();
                } catch (WriteException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
最终结果 :

posted on 2016-07-29 12:57  浅笑灬  阅读(419)  评论(0编辑  收藏  举报

导航