千家信息网

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(List list){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 static  boolean 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文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0