java中export方法如何实现导出excel文件
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章将为大家详细讲解有关java中export方法如何实现导出excel文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.export函数//导出文件接口p
千家信息网最后更新 2025年02月08日java中export方法如何实现导出excel文件
这篇文章将为大家详细讲解有关java中export方法如何实现导出excel文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1.export函数
//导出文件接口public String export(){return this.myExport(exportList);}
2.导出列名
private String myExport(Listlist){com.bronzesoft.power.tools.json.JSONObject info = new com.bronzesoft.power.tools.json.JSONObject();try{List headList = new ArrayList (Arrays.asList("年", "月", "部门","部门负责人","经营值","收入", "支出","填报工时","标准工时","经营参数"));Commonutil.export(list,headList,"部门经营总览导出");info = Commonutil.setInfo(info,"部门经营总览导出");}catch (Exception e){LogUtil.error(this.getClass().getName()+".exportExcel()", e);}return info.toString();}
3.export实现方法
首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(XSSFWorkbook),一个workbook可以有多个sheet(XSSFSheet)组成,一个sheet是由多个row(XSSFRow)组成,一个row是由多个cell(XSSFCell)组成。
public staticboolean export(List list,List headList,String fileName){return myExport(list,headList,fileName,com.bronzesoft.rdm.platform.util.Constants.PATH + com.bronzesoft.power.platform.Constants.TEMPFOLDER_DIR );}//将list导出为excel,文件名为fileNamepublic static boolean myExport(List list,List headList,String fileName,String path){try{if(!checkListAndHead(list,headList)){LogUtil.info( "head的长度有问题,导出的文件不正确" );}File file = new File(path + File.separator + fileName + ".xlsx");if(!file.exists()) {file.createNewFile();}//创建对应excel文件,存储路径path待确定XSSFWorkbook workBook = new XSSFWorkbook();//创建一个excel的sheet页XSSFSheet sheet = workBook.createSheet(fileName);XSSFRow row = null;XSSFCell cell = null;Map styles = StyleUtil.createStyles(workBook);//表头样式CellStyle headCenterIndex = styles.get("headCenter");//列的样式居中,背景颜色为白色CellStyle center = styles.get("centerWhite");row = sheet.createRow(0);//表头数据for (int i = 0; i < headList.size(); i++) {//创建列cell = row.createCell(i);//设置列的valuecell.setCellValue(headList.get(i));//设置列的样式cell.setCellStyle(headCenterIndex);}//表格数据//写入表格数据String codeName = "";int rownum = 1;T obj = null;for(int i = 0; i < list.size(); i++){obj = list.get(i);if(null != obj){Field[] fields = obj.getClass().getDeclaredFields();row = sheet.createRow(rownum);for(int j = 0; j< fields.length; j++){fields[j].setAccessible(true);codeName = String.valueOf(fields[j].get(obj));//创建第j列cell = row.createCell(j);cell.setCellValue(Commonutil.getStringVal(codeName));cell.setCellStyle(center);}}rownum++;}// //i代表列,设置列的宽度// for (int i = 0; i < headList.size(); i++) {// if(i == 0){// sheet.setColumnWidth(i, 2000);// }else if(i == 1 || i == 3){// sheet.setColumnWidth(i, 6000);// }else{// sheet.setColumnWidth(i, 4000);// }// }//将文件写到临时目录FileOutputStream out = new FileOutputStream(file);workBook.write(out);}catch (Exception e){LogUtil.error(fileName + "export失败" );}return true;}//检查head的size是否符合规范public static boolean checkListAndHead(List list,List headList){if(list.size()>0){T t = list.get(0);if(getColumnCount(t) != headList.size()){LogUtil.info( "head的长度有问题" );return false;}}return true;}//获取一个对象成员变量的个数public static int getColumnCount(T t){Field[] fields = t.getClass().getDeclaredFields();int count = fields.length;return count;}
4.前端对接
public static JSONObject setInfo(JSONObject info,String fileName) throws Exception {Storage s = Commonutil.getDefaultStorage();info.put("port", String.valueOf(s.getPort()));info.put("dirAddress", Base64Util.encode(com.bronzesoft.rdm.platform.util.Constants.PATH));info.put("address", Base64Util.encode(com.bronzesoft.power.platform.Constants.TEMPFOLDER_DIR + File.separator + fileName + ".xlsx"));info.put("name", Base64Util.encode(fileName));info.put("extendName", "xlsx");return info;}
5.前端代码
function doExport(){synAjax.tabCall("com.bronzesoft.rdm.SeDeptTotalTab", "export", null, function(data){doDownload(data);});}function doDownload(data){console.log('data',data)r = eval('('+data+')');$("#_file_dir").val(r.dirAddress);$("#_file_address").val(r.address);$("#_file_name").val(r.name);$("#_file_extname").val(r.extendName);if ($.browser.safari) { $("#_file_downform").attr("target", ""); }var servlet = powerPath + "download";$("#_file_downform").attr("action", servlet).submit();}
关于"java中export方法如何实现导出excel文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
部门
经营
方法
多个
数据
样式
篇文章
前端
工时
是由
更多
表头
表格
长度
问题
不错
实用
个数
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
常见保证网络安全公示
计算机网络技术专接本必考
移动应用软件开发赛项
数据库字段只能为字母
网络安全带给我们的启示
KIS标准版数据库密码
华为网络安全工程师内容
联通宽带的服务器名称填什么
人体蛋白正常数据库
极客创新互联网科技有限公司
网络技术领头人
如何自己搭建一个数据库
数据库怎么设置自动启动不了
飞行质谱数据库耗材对比
rsc数据库搜索技巧
附加数据库 数据库只读
奉贤区常规软件开发值多少钱
桂林网络安全等级
全国网络安全员法制竞赛决赛
直销软件开发选直销大师可靠
吃鸡服务器可以有多少战神
操作关系型数据库的通用语言
网站出现服务器启动失败
互联网科技公司靠谱吗
完美世界服务器延迟高怎么办
信息网络安全与农业结合
web服务器怎么安全
中国四大服务器厂
软件开发签了禁业协议
数据库e-r图图形