当前位置: 首页 > news >正文

导出excel

2019独角兽企业重金招聘Python工程师标准>>> 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

相关文章:

  • Oracle坑爹入门踩坑篇
  • GPU大百科全书索引(有助于理解openGL工作流程)
  • 数据结构实例参考——“查找”的原理
  • git clone Gtk-WARNING **: cannot open display
  • 利用MAVEN打包时,如何包含更多的资源文件
  • js ajax 1
  • Linux git 文档
  • SQL2005SP4补丁安装时错误: -2146233087 MSDTC 无法读取配置信息。。。错误代码1603的解决办法...
  • 如何对DevExpress ASPxGridView进行分组排序?
  • EXECUTORSERVICE线程池讲解
  • iOS-技巧性总结
  • svn安装--linux环境
  • Linux下which、whereis、locate、find命令的区别
  • Java基本数据类型之Number
  • Java实现RSA数字签名算法
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [译] React v16.8: 含有Hooks的版本
  • 2017年终总结、随想
  • gitlab-ci配置详解(一)
  • hadoop集群管理系统搭建规划说明
  • interface和setter,getter
  • java8-模拟hadoop
  • KMP算法及优化
  • MYSQL 的 IF 函数
  • nodejs:开发并发布一个nodejs包
  • Redis在Web项目中的应用与实践
  • Service Worker
  • Spring-boot 启动时碰到的错误
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 翻译:Hystrix - How To Use
  • ------- 计算机网络基础
  • 理清楚Vue的结构
  • 利用jquery编写加法运算验证码
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 怎么将电脑中的声音录制成WAV格式
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #define与typedef区别
  • #pragma pack(1)
  • #QT(TCP网络编程-服务端)
  • #WEB前端(HTML属性)
  • $.ajax()
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (10)ATF MMU转换表
  • (2015)JS ES6 必知的十个 特性
  • (26)4.7 字符函数和字符串函数
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (办公)springboot配置aop处理请求.
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions