zoukankan      html  css  js  c++  java
  • java用jxl数据库导出excel通用方法

    public class ExportExcelJXL {
        /***************************************************************************
         * @param fileName
         *            EXCEL文件名称
         * @param listTitle
         *            EXCEL文件第一行列标题集合
         * @param listContent
         *            EXCEL文件正文数据集合
         * @return
         */
        public final static String exportExcel(String fileName, String headTitle, String[] Title, List<Object> listContent) {
            
            System.out.println("进入导出环节"+fileName);
          
            System.out.println();
           
            String result = "系统提示:Excel文件导出成功!";
            // 以下开始输出到EXCEL
            try {
                System.out.println("进入try");
                
                // 定义输出流,以便打开保存对话框______________________begin
                HttpServletResponse response = ServletActionContext.getResponse();
                OutputStream os = response.getOutputStream();// 取得输出流
                response.reset();// 清空输出流
                response.setHeader("Content-disposition", "attachment; filename="
                        + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
                // 设定输出文件头
                response.setContentType("application/msexcel");// 定义输出类型
                // 定义输出流,以便打开保存对话框_______________________end
    
                /** **********创建工作簿************ */
                WritableWorkbook workbook = Workbook.createWorkbook(os);
    
                /** **********创建工作表************ */
    
                WritableSheet sheet = workbook.createSheet("Sheet1", 0);
    
                /** **********设置纵横打印(默认为纵打)、打印纸***************** */
                jxl.SheetSettings sheetset = sheet.getSettings();
                sheetset.setProtected(false);
    
                /** ************设置单元格字体************** */
                WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
                WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
    
                /** ************以下设置三种单元格样式,灵活备用************ */
                // 用于标题居中
                WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
                wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
                wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
                wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
                wcf_center.setWrap(false); // 文字是否换行
    
                // 用于正文居左
                WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
                wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
                wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
                wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
                wcf_left.setWrap(false); // 文字是否换行
    
                /** ***************以下是EXCEL开头大标题,暂时省略********************* */
                if (headTitle != null && headTitle.length() == 0) {
                    sheet.mergeCells(0, 0, 120, 0);
                    sheet.addCell(new Label(0, 0, headTitle, wcf_center));
                }
                /** ***************以下是EXCEL第一行列标题********************* */
                for (int i = 0; i < Title.length; i++) {
                    sheet.addCell(new Label(i, 0, Title[i], wcf_center));
                }
                /** ***************以下是EXCEL正文数据********************* */
                Field[] fields = null;
                int i = 1;
                for (Object obj : listContent) {
                    fields = obj.getClass().getDeclaredFields();
                    int j = 0;
                    for (Field v : fields) {
                        v.setAccessible(true);
                        Object va = v.get(obj);
                        if (va == null) {
                            va = "";
                        }
                        sheet.addCell(new Label(j, i, va.toString(), wcf_left));
                        j++;
                    }
                    i++;
                }
                /** **********将以上缓存中的内容写到EXCEL文件中******** */
                workbook.write();
                /** *********关闭文件************* */
                workbook.close();
    
            } catch (Exception e) {
                result = "系统提示:Excel文件导出失败,原因:" + e.toString();
                System.out.println(result);
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * 导出excel
         * 
         * @return
         */
        public String excelPage() {
            ExportExcelJXL excel = new ExportExcelJXL();
            String str = "";
            //str = new String(StrutsUtils.getRequest().getParameter("wineOrg.orgName").getBytes("iso8859-1"), "UTF-8");
            List<Object> li = new ArrayList<Object>();
            String[] Title = { "机构ID", "会员编号", "类别", "名称", "省ID", "省名称", "城市ID", "城市名称", "详细地址", "联系人", "性别", "联系手机",
                    "联系电话", "传真", "邮箱", "QQ", "生日", "积分", "客户等级", "现金账户余额", "结算方式", "客户类型", "购买次数", "购买支数", "创建人ID",
                    "创建人姓名", "create_time", "del", "STS", "备注", "负责人ID", "负责人姓名", "审核标识", "审核人ID ", "审核人姓名", "审核日期",
                    "分配人ID", "分配人姓名", "分配日期", "修改人ID", "修改人姓名  ", "修改时间" };
            excel.exportExcel("客户资料信息.xls", str, Title, li);
            return "";
        }
    }
  • 相关阅读:
    Java基础:基本类型
    完全干净的卸载VS2013
    git本地仓库首次push到远程仓库出现错误 ! [rejected] master -> master (fetch first)
    运行VS出现warning C4996错误的解决办法
    xbmc-android的编译
    linux执行sh,出现/bin/sh^M: bad interpreter: No such file or directory
    Ubuntu配置android-vlc编译环境(2015-11-05)
    a80修改默认4k输出,官方代码锁死了
    ubuntu12.04平台下a80编译环境搭建
    编译java代码出现 错误: 需要class, interface或enum 提示
  • 原文地址:https://www.cnblogs.com/jskbk/p/5985186.html
Copyright © 2011-2022 走看看