文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java中export方法如何实现导出excel文件

2023-06-29 16:08

关注

这篇文章将为大家详细讲解有关java中export方法如何实现导出excel文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.export函数

//导出文件接口public String export(){return this.myExport(exportList);}

2.导出列名

private String myExport(List<BusinessDept> list){com.bronzesoft.power.tools.json.JSONObject info = new com.bronzesoft.power.tools.json.JSONObject();try{List<String> headList = new ArrayList<String>(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)组成。

java中export方法如何实现导出excel文件

public static <T> boolean export(List<T> list,List<String> 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 <T> boolean myExport(List<T> list,List<String> 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<String, CellStyle> 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 <T> boolean checkListAndHead(List<T> list,List<String> headList){if(list.size()>0){T t = list.get(0);if(getColumnCount(t) != headList.size()){LogUtil.info( "head的长度有问题" );return false;}}return true;}//获取一个对象成员变量的个数public static <T> 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文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯