java导出各种样式的Excel表格
//定义一个新的工作簿 XSSFWorkbook wb = new XSSFWorkbook(); //创建一个Sheet页 XSSFSheet sheet = wb.createSheet(title); //设置行高 sheet.setDefaultRowHeight((short) (2 * 256)); //为有数据的每列设置列宽 for (int i = 0; i < headList.size(); i++) { sheet.setColumnWidth(i, 8000); } //设置单元格字体样式 XSSFFont font = wb.createFont(); font.setFontName("等线"); font.setFontHeightInPoints((short) 16);
业务需求,自己研究学习并且记录一下笔记:
创建行
XSSFRow row = sheet.createRow(x);//创建一行,从0开始算起
//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列,从0开始算单元格 CellRangeAddress rangeAddress = new CellRangeAddress(0, 0, 0, 0); sheet.addMergedRegion(rangeAddress);
设置单元格样式:
// 创建单元格文字居中样式并设置标题单元格居中 XSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 titleCell.setCellStyle(cellStyle);
还未完成,后续补充............
补充个方法,是各种合并单元格来达到需要的样式,这边就不涉及业务单纯搞一个模板出来了:
String title="阿巴阿巴"; String filename="测试"; // HttpServletResponse response =new ; List<Map<String,Object>> mapList=baseDao.getPointScreen(); Map<String, Object> map = mapList.get(0); Set<String> stringSet = map.keySet(); ArrayList<String> headList = new ArrayList<>(stringSet); //定义一个新的工作簿 XSSFWorkbook wb = new XSSFWorkbook(); //创建一个Sheet页 XSSFSheet sheet = wb.createSheet(title); XSSFFont font = wb.createFont(); font.setFontName("等线"); font.setFontHeightInPoints((short) 16); //在sheet里创建第一行,并设置单元格内容为 title (标题) XSSFRow titleRow = sheet.createRow(0); XSSFCell titleCell = titleRow.createCell(0); titleCell.setCellValue("测点"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1)); sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 6)); sheet.addMergedRegion(new CellRangeAddress(0, 1, 7, 7)); sheet.addMergedRegion(new CellRangeAddress(0, 1, 8, 8)); sheet.addMergedRegion(new CellRangeAddress(2, 26, 0, 0)); sheet.addMergedRegion(new CellRangeAddress(2, 26, 1, 1)); sheet.addMergedRegion(new CellRangeAddress(2, 20, 2, 2)); sheet.addMergedRegion(new CellRangeAddress(2, 20, 3, 3)); sheet.addMergedRegion(new CellRangeAddress(2, 20, 4, 4)); sheet.addMergedRegion(new CellRangeAddress(2, 20, 5, 5)); sheet.addMergedRegion(new CellRangeAddress(2, 20, 6, 6)); sheet.addMergedRegion(new CellRangeAddress(27, 40, 0, 46)); // 创建单元格文字居中样式并设置标题单元格居中 XSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 titleCell.setCellStyle(cellStyle); try { response.setContentType("application/vnd.ms-excel"); filename = URLEncoder.encode(filename, "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" .concat(filename)); OutputStream out = response.getOutputStream(); wb.write(out); wb.close(); out.close();; } catch (IOException e) { e.printStackTrace(); } return null; }
最后生成的模板样式:
熟悉一下后续就可以用于业务了!!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!