上一篇对excel导入做了浅层的解释,本文将对导出再做浅层解释.

仍然是相同的套路,只不过是反过来而已.

反过来方向理论上本来是这样的:cell-->row-->sheet-->workbook-->输出流--->硬盘文件file

但实际却不是这样的,为什么呢?因为单元格cell不会创建出一个row,更不会创建一个sheet,也不可能反向创建一个workbook,而workbook与输出流之间存在层级关系,但不存在包含被包含关系,所以导出的方向就变成这样了:

workbook-->sheet--->row--->cell--->写内容-->输出流--->硬盘文件file

是不是很合理,很符合人类思维?

所以现在开始:

1.首先从Workbook开始:Workbook wb = new HSSFWorkbook(); (//HSSF是用于xls的,如果想输出xlsx格式的,就用另一个实现类)

2.然后创建sheet:wb.createSheet("测试用工作簿")

3.然后创建row:sheet.createRow(0)//0表示第一行

4.然后创建cell:row.createCell(0)//0表示第一列

5.然后写内容:cell.setCellValue("测试用的内容")

6.然后获取输出流:FileOutputStream fos = new FileOutputStream(filepath)

7.然后流呀,流向输出流呀,流到硬盘文件呀:wb.write(fos)

8.然后,关闭资源:fos.close(),wb.close()

然后,就结束了,束了,了...

就这样简单!

但是还有一些细节需要注意:

9.上面的步骤只是说流程,没有区别对待只有一行的表头和有多行的表体,但过程都是一样的.此外,也没有考虑格式问题,不过这些都是小问题,百度很容易查到的

总结一下导出线索:

workbook-->sheet--->row--->cell--->写内容--->获取输出流--->流动--->关闭资源

记住了吗?

对poi-excel导出的浅层理解的更多相关文章

  1. struts2.1笔记01:MVC框架思想浅层理解

      1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...

  2. poi excel导出,下载

    poi.jar包 public void downExcel(HttpServletResponse response,Page<ShopApply> page) throws Excep ...

  3. POI excel导出

    ******************************* excel表格导出,使用POI实现 ******************************* 实现导出步骤 --配置导出excel ...

  4. java POI excel 导出复合样式(一个单元格两个字体)

    前言:java poi 导出 excel 时,需要设置一个单元格有多个字体样式,有点类似于富文本. 想要达到的效果(一个单元格里): 我使用的 poi 版本是 <dependency> & ...

  5. poi excel导出 xssf 带下拉框

    需求:导出之后带有二级级联的下拉框.(类似于省市). 最初的思路是怀疑是不是数组内串太多了,导出之后的excel有36行,调试的误区在于刚开始认为对行数有限制,后自己写了一个测试类,才发现不是行数,而 ...

  6. 对poi-Excel导入的浅层理解

    本文即将对POI方式导入excel文件最核心的步骤予以说明,为的是简单,也是为了阐明文件导入的原理. 文件导入有一个很明显的线索: 1.首先是我们知道硬盘中的文件,即:文件对象File file 2. ...

  7. POI Excel导出样式设置

    HSSFSheet sheet = workbook.createSheet("sheetName");    //创建sheet sheet.setVerticallyCente ...

  8. altera rom ram IP的浅层理解

    1.altera 提供了两种rom :单口rom和双口rom. 官方文档偷图: 单口rom:输出可以配置寄存器寄存再输出,时钟可以输入输出用不同的时钟. 双口rom:输入输出时钟可不同或者A与B的时钟 ...

  9. 转:POI操作Excel导出

    package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...

随机推荐

  1. StringEscapeUtils对字符串进行各种转义与反转义

    项目过程中导出的word无法打开,发现是由于里面有&字符造成,需要进行HTML字符的转义: StringEscapeUtils.escapeHtml4(“需要转义的字符”); 已解决. 参考: ...

  2. js parseInt()与Number()区别

    说到转换成数字类型,我首先想到的是parseInt()方法,后来接触多了才发现还有一个Number()方法,同样是转换成数字类型,这两种方法有什么不同的呢? 1.parseInt():      pa ...

  3. Fiddle 抓包工具

    1.在AutoResponder中拖取所需修改文件,在最下方进行文件替换,然后刷新页面: 2.连接手机: 在tools—options—connections下勾选Allow remote compu ...

  4. IE浏览器使用VLC实时显示视频(海康、大华)

    VLC2.X 下载地址: https://download.csdn.net/download/zhutouaizhuwxd/10692873 CSDN必须要加分,你们用分下载吧 使用方法: 只需要添 ...

  5. Django进阶之CSRF

    简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功能有 ...

  6. [Leetcode 15]三数之和 3 Sum

    [题目] Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...

  7. C语言实现Winsocket网络传输数据时乱码问题

    问题描述:输入中文字符时在数据结尾总是有别的字符冒出 解决办法: recvBuf[ret] = '\0';//接收数据的数组,表示存储的数据截止,后面没有数据了 再运行,传输正常. 提示:C语言基础知 ...

  8. Android : 跟我学Binder --- (5) C++实现

    目录: Android : 跟我学Binder --- (1) 什么是Binder IPC?为何要使用Binder机制? Android : 跟我学Binder --- (2) AIDL分析及手动实现 ...

  9. hadoop 设置回收站

    我的问题是:hadoop回收站为什么会保留多个过期时间的数据   我们知道hadoop的回收站是在我们删除数据后能恢复的目录,但是我们并不希望在回收站保存太久的数据,我们可以使用如下参数进行配置.   ...

  10. 解决ios兼容性问题

    其实也不算兼容性问题 在做一个手指切换动画时,在安卓显示正常但是在iOS上切换图片时整个页面会向上或向下窜,这样非常印象美观,这种现象是由于ios自带的下拉刷新功能能影响的: 解决方法: 添加阻止事件 ...