博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导出excel
阅读量:6188 次
发布时间:2019-06-21

本文共 1966 字,大约阅读时间需要 6 分钟。

hot3.png

  1. <span style="font-size:18px;">/** 
  2.  * @param sql  查询语句 
  3.  * @param contentTitle excel表格标题名称 
  4.  * @param filepath   生成excel表格文件的路径 
  5.  * @param filename  excel表格的名称 
  6.  * @return 生成excel表格文件的路径 
  7.  */  
  8. public String ToExcel(String sql,String contentTitle,String filepath,String filename) {  
  9.         WritableWorkbook workbook = null;  
  10.         try{  
  11.               
  12.             /** 
  13.              * 执行sql语句,查询数据库结果 
  14.              */  
  15.             List<Map> list = null;  
  16.             //获取结果中的字段  
  17.             if(list!=null && list.isEmpty()){  
  18.                 //获取导出excel表格中所有的列字段名称  
  19.                 Map<String,String> columnMap = list.get(0);  
  20.                 Set<String> keySet = columnMap.keySet();  
  21.                   
  22.                 /* 
  23.                  * 1,创建excel文件 
  24.                  */  
  25.                 File file = new File(filepath);  
  26.                 if (!file.exists()) {  
  27.                     file.mkdirs();  
  28.                 }  
  29.                 //获取文件的完整路径  
  30.                 filename =file+"/"+filename+ ".xls";  
  31.                 //创建excel文件  
  32.                 File excelfile = new File(filename);  
  33.                 excelfile.createNewFile();  
  34.                 workbook = Workbook.createWorkbook(new FileOutputStream(excelfile));  
  35.                   
  36.                 /* 
  37.                  * 2,写入excel文件标题和工作簿名称 
  38.                  */  
  39.               
  40.                 WritableSheet sheet = workbook.createSheet("sheet名称", 0);  
  41.                 Label nL = null;  
  42.                 jxl.write.WritableFont headerFont = new jxl.write.WritableFont(WritableFont.ARIAL, 18, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);  
  43.                 jxl.write.WritableCellFormat headerFormat = new jxl.write.WritableCellFormat(headerFont);  
  44.                 jxl.write.WritableFont titleFont = new jxl.write.WritableFont(WritableFont.ARIAL, 11, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);  
  45.                 jxl.write.WritableCellFormat titleFormat = new jxl.write.WritableCellFormat(titleFont);  
  46.   
  47.                 /* 
  48.                  * 3,写入标题 
  49.                  */  
  50.                 nL = new Label(0, 0, contentTitle, headerFormat);  
  51.                 sheet.addCell(nL);  
  52.                 /* 
  53.                  * 4,写入内容 
  54.                  */  
  55.                 Label label;  
  56.                 int index = 0;  
  57.                 for(String key:keySet){  
  58.                     nL = new Label(index, 1, key, titleFormat);  
  59.                     sheet.addCell(nL);  
  60.                     for (int j = 0; j < list.size(); j++) {  
  61.                         //得到单元格的列所对应的值  
  62.                         String value = (String) list.get(j).get(key);  
  63.                         //把值放入单元格中  
  64.                         Label obj = new Label(index, j + 2, value);  
  65.                         sheet.addCell(obj);  
  66.                     }  
  67.                     index++;  
  68.                 }  
  69.                 workbook.write();  
  70.                 workbook.close();  
  71.             }  
  72.         }catch(Exception e){  
  73.             e.printStackTrace();  
  74.         }  
  75.         return filename;  
  76.     }</span>  

转载于:https://my.oschina.net/challengeof/blog/535993

你可能感兴趣的文章
CPU问题导致的大量进程崩溃问题
查看>>
jQuery10种不同动画效果的响应式全屏遮罩层
查看>>
nginx虚拟主机
查看>>
多线程下单例模式:懒加载(延迟加载)和即时加载
查看>>
事务的详解
查看>>
CentOS7使用firewalld防火墙配置端口
查看>>
2013 Multi-University Training Contest 7 部分解题报告
查看>>
执行 bash/sh 命令
查看>>
windows 2003 企业版 下载地址+序列号
查看>>
iOS开发中如何保存按钮的状态
查看>>
系统利益相关者描述案例
查看>>
cocos2dx 触摸测试一 单点和多点
查看>>
帮设计师与工程师更好沟通的实用技巧
查看>>
C#实现http断点下载
查看>>
react项目和next项目修改默认端口号
查看>>
JS全局屏蔽回车事件
查看>>
通知中心与本地通知
查看>>
Python三元表达式和列表生成式
查看>>
The APR based Apache Tomcat Native library 异常解决办法
查看>>
python使用smtplib发送邮件
查看>>