使用jxl从web页面下载数据到本地的Excel中

来源:互联网 发布:大学生适合开淘宝店吗 编辑:程序博客网 时间:2024/05/29 17:27

//从数据库获取数据 list

List<Map<String,Object>> list = xxxxxxx;

//列的宽度数组

Integer[] columnWidths = new Integer[] { 15, 15, 15, 15, 15, 15};

//定义输出流

OutputStream os = null;

//创建工作簿

WritableWorkbook work = null;

try {

//下载时的提示的文件名

String excelName = "表.xls";  

//设置内容类型

            response.setContentType("APPLICATION/OCTET-STREAM");  

  //设置消息头

            response.setHeader("Content-Disposition", "attachment; filename="  

                    + URLEncoder.encode(excelName, "UTF-8"));

//获取输出流  

            os = response.getOutputStream();

 //定义表名

            String sheetName = "转账记录表";

            WorkbookSettings setting = new WorkbookSettings();  

//设置国家语言

            Locale locale = new Locale("xx", "CN");  
            setting.setLocale(locale);  
            setting.setEncoding("UTF-8");  
            work = Workbook.createWorkbook(os, setting);
            //表

            WritableSheet sheet = work.createSheet(sheetName,1);

//定义标签

            Label label = null;
            //标题栏

            String[] headers ={ "666", "888", "55", "44", "1", "11"};

//用标题数组的长度,定义列的多少

            int colSize = headers.length;

            int temp = 0;

//定义列的内容

            String colName = null;  
            for (int i = 0; i < colSize; i++) {  
                colName = headers[i];  
                if (null == colName || "".equals(colName))  

                    colName = " ";  

    

                label = new jxl.write.Label(i, 0, colName);  

                sheet.addCell(wlabel);
                temp = columnWidths[i].intValue();  
                // 默认设置列宽  
                temp = temp == 0 ? 15 : temp;
                sheet.setColumnView(i, temp);  
            }
            for (int i = 0; i < list.size(); i++) {

Map<String,Object> maps = list.get(i);

//给标签 赋值

wlabel = new jxl.write.Label(0, (i + 1), maps.get("fid")==null?"":maps.get("fid").toString() + " ");  

//把标签的内容填充到单元格内

                sheet.addCell(wlabel);
                String type = maps.get("type").toString();
                switch(type){
                case "0":
                type = "UUID转账";
                break;
                case "1":
                type = "钱包地址转账";
                break;
                default:
                type = " ";
                break;
                }
                label = new jxl.write.Label(4, (i + 1), type);  
                sheet.addCell(wlabel);
                label = new jxl.write.Label(5, (i + 1), maps.get("createTime")==null?"":maps.get("createTime").toString() + " ");  
                sheet.addCell(wlabel);
}
} catch (Exception e) {
e.printStackTrace();
}finally{

try {

//关闭流

work.write();
work.close();
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
阅读全文
0 0