POI导出Excel笔记
来源:互联网 发布:杜蕾斯震动棒 知乎 编辑:程序博客网 时间:2024/05/29 10:09
导出excel是个常用的问题,然而这一次摸索之后并不知道下一次是什么时候再用,记录一下,方便自己
目录
- 目录
- 常用的类型
- 代码
- Excel文件输出
常用的类型
- HSSFWorkbook
所有工作的起点,可以创建HSSFSheet、HSSFCellStyle、HSSFFont等常用类型的对象
- HSSFSheet
sheet页,主要操作对象,创建/获取行对象最常用
- HSSFCell
单元格
- HSSFStyle 单元格样式,颜色,对齐`
- HSSFFont
字体,可以加粗等
- HSSFComment
备注,悬浮展示/点击展示
- 导出一个基本的Excel这些类型足够了
代码
基本的练习代码:
//工作簿对象,所有的sheet都在在这个对象上操作,创建样式、创建sheet、HSSFWorkbook workbook=new HSSFWorkbook();//一个表格页面,可以用default构造,可以传入sheet名构造HSSFSheet sheet=workbook.createSheet("可以的我的哥");//绘制图形,不限于图形,比如备注也可放在这个容器中HSSFPatriarch p= sheet.createDrawingPatriarch();//绘制线条p.createSimpleShape(new HSSFClientAnchor(2,1,2,2,(short)2,2,(short)2,2));HSSFComment comment = p.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5)); // 设置注释内容comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));//comment.setVisible(true);//控制注释是否直接显示,false为不可见,默认false//样式对象、操作单元格的属性HSSFCellStyle style2 = workbook.createCellStyle(); style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index); //设置填充模式,不设置填充模式,填充颜色将不生效style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); style2.setBorderLeft(HSSFCellStyle.BORDER_THIN); style2.setBorderRight(HSSFCellStyle.BORDER_THIN); style2.setBorderTop(HSSFCellStyle.BORDER_THIN); style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); style2.setWrapText(true);// auto change linestyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// vertical be centerstyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);// horizontal be center//构建一个行,在excel的sheet中,行号是从1开始的,但是在对象操作时,从0开始HSSFRow row=sheet.createRow(1);//构建一个单元格对象,对象的索引也是从0开始的,由行和指定 column唯一确定位置HSSFCell cell=row.createCell((short) 1);cell.setCellStyle(style2);//区域对象Region region =new Region((short)0, (short)0, (short)2, (short)2); //合并指定区域的单元格,ps:取合并单元格对象的时候,取得是第一个单元格的坐标sheet.addMergedRegion(region);
Excel文件输出
- 本地保存
workbook.write(new FileOutputStream(new File("path.xls")));
- 从服务器发送给客户端
//通过写成byte[]对象,就可以利用response对象以附件的形式返回给浏览器,直接下载 public byte[] getBytes() throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); workbook.write(out); return out.toByteArray(); }//body参数就是上面getBytes()产生的数组了private void writeExcelToClient(byte[] body, HttpServletResponse response, String fileName) throws IOException { //指明内容类型,没深究这个类型问题,下回 //在项目里,这里试过2-3种类型,最终客户端都正常接收了...(狗血... response.setContentType("multipart/form-data"); response.addHeader("Content-Disposition", "attachment;filename=" + fileName); response.setContentLength(body.length); OutputStream out = response.getOutputStream(); out.write(body); out.close(); }
0 0
- POI导出Excel笔记
- Apache POI 导出Excel笔记
- Excel POI导出excel
- POI-----POI导出Excel实例
- jsp导出excel poi
- POI导出EXCEL
- poi导出Excel
- poi导出excel
- POI 导出excel
- POI 导出excel
- POI 实现导出Excel
- java poi 导出excel
- poi 方式导出excel
- POI 导出Excel
- 使用poi导出excel
- poi导出excel
- poi导出excel实例
- 使用POI导出Excel
- linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟
- JavaEE struts2 Action的结果配置
- SDUT3371 解题报告
- CGLIB学习笔记
- SpringMVC浅谈
- POI导出Excel笔记
- svn的多项目并行源码管理与自动发布思考
- java获取kafka中的消息数据
- Redis 管道pipeline
- Mina学习笔记(2) HelloWorld(TCP/IP)
- echart3.0 节点关系图,自定义提示。边上属性不显示的问题。
- 用Caffe for Windows版本配置并训练cifar10
- 选择器的回顾
- 百度坐标转WGS84坐标