java实现不固定行列数excel导出
来源:互联网 发布:java多线程运用场景 编辑:程序博客网 时间:2024/06/04 18:00
最近在做一个不固定行列的excel导出。由于之前都是用公司封装的导出功能,直接传一个list对象进去,具体实现也不用知道。但是这个需求比较特殊,行和列都是不固定的,前台选择一个证券组合和一段日期,导出该组合,这段时间内的证券行情。组合里的证券个数不一,日期天数也不一,调用封装的方法无法实现,便自己随便写了个excel导出。上代码:
import java.util.Arrays;import java.util.List;/*** 需要导出的对象*/public class SecuQuoHisRole { private String quoTypeName;//行情类型名称 private String[] secuInfo;//证券信息 private String[][] secuQuoHisInfo;//证券行情信息 private List<String> secuDate;//日期 //此处省略类get/set方法等...}
/** * 返回导出文件名 * @param role * @param exportType:excel文件后缀 * @return */ public String queryExport(SecuQuoHisRole role, String exportType) { String fileUrl = Constants.FILE_ROOTPATH+ConstantsExport.EXPORTMENU; File saveDirFile = new File(fileUrl); if (!saveDirFile.exists() || !saveDirFile.isDirectory()) { saveDirFile.mkdirs(); } String fileurl= "D:\\temp\\upload\\tempExportFile\\"; String fileName= "证券组合市场数据.xlsx"; try { OutputStream os = new FileOutputStream(new File(fileurl + fileName)); XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("证券组合市场数据");// 创建一个sheet sheet.setDefaultColumnWidth(20);//默认列宽20 //首行样式 XSSFCellStyle style = wb.createCellStyle();// 设置这些样式 style.setFillForegroundColor(HSSFColor.DARK_BLUE.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); XSSFFont font = wb.createFont();// 生成一个字体 font.setColor(HSSFColor.WHITE.index); font.setFontHeightInPoints((short) 12); font.setFontName("Times New Roman"); style.setFont(font);// 把字体应用到当前的样式 //非首行样式 XSSFCellStyle style2 = wb.createCellStyle();// 设置这些样式 style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); style2.setBorderLeft(HSSFCellStyle.BORDER_THIN); style2.setBorderRight(HSSFCellStyle.BORDER_THIN); style2.setBorderTop(HSSFCellStyle.BORDER_THIN); style2.setAlignment(HSSFCellStyle.ALIGN_LEFT); XSSFFont font2 = wb.createFont();// 生成一个字体 font2.setFontHeightInPoints((short) 11); font2.setFontName("Times New Roman"); style2.setFont(font2);// 把字体应用到当前的样式 for (int i = 0; i < role.getSecuQuoHisInfo().length; i++) { if(i == 0){// 生成第一行(表头) XSSFRow row = sheet.createRow(i); XSSFCell firstCell = row.createCell(i); firstCell.setCellStyle(style); firstCell.setCellValue("日期"); for(int j = 1; j <= role.getSecuInfo().length; j++ ){ XSSFCell otherCell = row.createCell(j); otherCell.setCellStyle(style); otherCell.setCellValue(role.getSecuInfo()[j-1]); } }else{ XSSFRow row = sheet.createRow(i); XSSFCell firstCell = row.createCell(0); firstCell.setCellStyle(style2); firstCell.setCellValue(role.getSecuDate().get(i-1)); for(int k = 1; k <= role.getSecuQuoHisInfo()[0].length; k++ ){ XSSFCell otherCell = row.createCell(k); otherCell.setCellStyle(style2); otherCell.setCellValue(role.getSecuQuoHisInfo()[i][k-1]); } } } wb.write(os);// 写文件 os.close();// 关闭输出流 } catch (Exception e) { e.printStackTrace(); } return fileName; }
页面展示如下:
excel导出如下:
阅读全文
0 0
- java实现不固定行列数excel导出
- 导出到EXCEL(列不固定)
- EXCEL中设置固定行列
- 数据模型封装--行列都不固定(java)
- java实现Excel导出
- java实现excel导出
- JAVA导出EXCEL实现
- java实现Excel导出
- java实现导出Excel
- JTable如何像excel一样固定行列,不随滚动条移动
- 导出固定的excel
- 行列转换之列不固定
- 导出excel测试-excel行列限制
- JAVA实现Excel导入/导出
- JAVA实现Excel导入/导出
- JAVA实现Excel导入/导出
- JAVA实现Excel导入/导出
- JAVA实现Excel导入/导出
- 开启全站HTTPS时代-Nginx SSL+tomcat集群
- 月考核复习重点
- HDOJ 2017 ,祝你AC
- python3 XML转Json
- tomcat7:run ClassCastException解决
- java实现不固定行列数excel导出
- C语言整数的因式分解
- 何为泛型擦除
- zipimport.ZipImportError: can't decompress data; zlib not available 解决
- ARM GUN汇编标准
- ListIterator的双向遍历
- 产看系统硬件版本位数,查看操作系统版本,查看内核版本
- ArcGIS连接自编译PostgreSQL数据库
- JAVA字符集