Apache POI使用详解

POI结构与常用类

1、POI介绍

Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft Office文档的功能。

2、POI结构说明

包名称说明

HSSF提供读写Microsoft Excel XLS格式档案的功能。

XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。

HWPF提供读写Microsoft Word DOC格式档案的功能。

HSLF提供读写Microsoft PowerPoint格式档案的功能。

HDGF提供读Microsoft Visio格式档案的功能。

HPBF提供读Microsoft Publisher格式档案的功能。

HSMF提供读Microsoft Outlook格式档案的功能。

3、POI常用类说明

类名                     说明

HSSFWorkbook           Excel的文档对象

HSSFSheet

Excel的表单

HSSFRow

Excel的行

HSSFCell

Excel的格子单元

HSSFFont                Excel字体

HSSFDataFormat        格子单元的日期格式

HSSFHeader             Excel文档Sheet的页眉

HSSFFooter             Excel文档Sheet的页脚

HSSFCellStyle          格子单元样式

HSSFDateUtil           日期

HSSFPrintSetup        打印

HSSFErrorConstants   错误信息表

Excel的基本操作

java POI 生成 excel 文件写入本地

    /*** java 生成 excel 文件写入本地* */@RequestMapping(value = "/excel")@ResponseBodypublic void createExcel(){//windows和linux的斜杠不一样,而且java对于“/”需要转义处理,File.separator可以跨平台实现//切记!!!路径后面要写到具体的文件名称,不能只写到文件夹,否则会报拒绝访问String filePath = "D:"+File.separator+"YiFan"+File.separator+"excel.xls";//文件路径File file = new File(filePath);try {OutputStream ops = new FileOutputStream(file);//创建excel文件HSSFWorkbook workbook = new HSSFWorkbook();//创建excel工作表HSSFSheet sheet = workbook.createSheet("sheet1");//为工作表增加一行HSSFRow row =  sheet.createRow(0);//在指定的行上增两个单元格row.createCell(0).setCellValue("姓名");row.createCell(1).setCellValue("密码");//调用输出流把excel文件写入本地磁盘workbook.write(ops);//关闭输出流ops.close();} catch (Exception e) {e.printStackTrace();}}

java POI 读取本地 excel 文件

     /*** java POI 读取本地excel文件**/@RequestMapping(value = "/ExcelOperate")@ResponseBodypublic void ExcelOperate(){String filePath = "D:"+File.separator+"YiFan"+File.separator+"excel.xls";try{BufferedInputStream  bufferedInputStream = new BufferedInputStream(new FileInputStream(new File(filePath)));//流读取文件POIFSFileSystem fileSystem = new POIFSFileSystem(bufferedInputStream);//采用POIFSFileSystem 进行解析//读取excel文件HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileSystem);//根据名称获取指定的excel工作薄HSSFSheet sheet = hssfWorkbook.getSheet("sheet1");String fileName = hssfWorkbook.getSheetName(0);//返回读取文件名称int last = sheet.getLastRowNum();//获取最后一行的值,去除空格int first = sheet.getFirstRowNum();List<String> list = new ArrayList<>();//遍历获取数据for (int i =0;i<=last;i++){HSSFRow row = sheet.getRow(i);//获取i行int cell = row.getLastCellNum();//获取i行中的列数for(int j =0;j<cell;j++){String value =  row.getCell(j).getStringCellValue();list.add(value);}bufferedInputStream.close();}}catch (Exception e){e.printStackTrace();}}

2019.04.11 落笔

POI文件上传及使用详解相关推荐

  1. fileupload的回调方法_jQuery File Upload文件上传插件使用详解

    本篇教程介绍了jQuery File Upload文件上传插件使用详解,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入. < jQuery File Upload 是一个 ...

  2. fileinput 时间_JavaScript_Bootstrap Fileinput文件上传组件用法详解,最近时间空余,总结了一些关...

    最近时间空余,总结了一些关于bootstrap fileinput组件的一些常见用法,特此分享到phpstudy平台,供大家参考,同时也方便以后的查找.本文写的不好还请见谅. 一.效果展示 1.原始的 ...

  3. netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解

    NetCore文件上传两种方式 NetCore官方给出的两种文件上传方式分别为"缓冲"."流式".我简单的说说两种的区别, 1.缓冲:通过模型绑定先把整个文件保 ...

  4. php 文件上传页面模板,PHP文件上传类实例详解

    本文实例讲述了PHP文件上传类.分享给大家供大家参考,具体如下: 这里演示了FileUpload.class.php文件上传类,其中用到了两个常量,可在网站配置文件中定义: define('ROOT_ ...

  5. Struts文件上传与下载详解_文件的下载

    在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法! 1.写个文件下载的表单页面: <a href="downLoad.action? ...

  6. Struts文件上传与下载详解 _上传多个文件

    在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!! ...

  7. Struts文件上传与下载详解_上传单个文件

    大家都知道Servlet上传文件的时候用的是commons-fileupload插件上传的,但是过程极其的麻烦,同样Struts2也有自带的文件上传,但是过程比Servlet里面的简单了不少,接下来请 ...

  8. java监听上传文件,Springmvc文件上传监听详解

    spring mvc CommonsMultipartResolver 文件上传监听. /** * 重写 parseRequest方法 监听 */ @Override protected Multip ...

  9. SpringBoot实现文件上传下载功能详解(附带中文名称显示乱码问题的解决)

    文件上传模块: 首先,需要设置一个存放上传文件的目录,可以在接口中指定,也可以在配置文件中提前设置好. 这边采用的是配置文件的形式,在application.properties中指定路径为stati ...

最新文章

  1. 我们用Python分析了B站4万条数据评论,揭秘本山大叔《念诗之王》大热原因!...
  2. Spring + Mybatis 集成原理分析
  3. 数据中心的“芯”竞争
  4. ActionScript 3.0 概要
  5. 软件工程启程篇章:C#和四则运算生成与运算
  6. malloc申请一维动态数组的错误
  7. Android反翻译详解
  8. 获取手机IMEI和UID
  9. 远程工作两个月的体会(转)
  10. 机器学习与深度学习基本概念 学习笔记
  11. imx8 uuu烧录
  12. 2021年全球电力线通信(PLC)系统收入大约7385.8百万美元,预计2028年达到14530百万美元,2022至2028期间,年复合增长率CAGR为11.0%
  13. linux离线安装nettools,CentOS最小安装之安装net-tools并配置网络
  14. (综述)微信聊天记录导出制作年度报告方法和相关软件
  15. 微信-H5界面跳转至公众号关注界面问题
  16. 粗同步 符号同步 matlab,OFDM系统在衰落信道中帧同步算法研究(毕业论文)
  17. Linux软件手动添加到桌面或启动栏
  18. 邮件服务中550、553和禁止中继错误原因和解决方法
  19. 最新网站外链建设方法大全!
  20. 访问 Linux 服务器上的文件(以图片为例)

热门文章

  1. matlab ild,10GBASE-KR
  2. html5连连看源码解析,JS连连看源码完美注释版(推荐)
  3. 电网负荷调度三维组态软件V2.0
  4. jQuery - fadeIn淡入效果
  5. 微端和网站可以放同一台服务器吗,微端放云服务器可以吗
  6. 计算机内存占用过高怎么办,电脑内存占用过高怎么办?
  7. html的li标签结合layui实现滚动列表
  8. 深入剖析eMule 【for_wind】
  9. 阿里云大数据助理工程师ACA认证最新笔记(2021)
  10. route add命令详解