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 "";
        }
    }
  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/jskbk/p/5985186.html
Copyright © 2011-2022 走看看