范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

使用POI进行写操作

  一、POI简介(Apache POI)
  1、什么是POI
  Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案的功能。 (.xls) XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。 (.xlsx) HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。
  2、官网
  http://poi.apache.org/
  官网可以找到文档和每个版本的下载地址 二、创建案例项目
  1、创建一个普通的maven项目
  项目名:excel-poi
  2、pom中引入xml相关依赖org.apache.poi
  poi
  3.9
  
  org.apache.poi
  poi-ooxml
  3.9
  
  joda-time
  joda-time
  2.10.1
  
  junit
  junit
  4.12
  
  三、xls写-03和07的区别
  1、03版本package com.atguigu.excelpoi;
  public class ExcelWriteTest {
  @Test
  public void testWrite03() throws IOException {
  // 创建新的Excel 工作簿
  Workbook workbook = new HSSFWorkbook();
  // 在Excel工作簿中建一工作表,其名为缺省值 Sheet0
  //Sheet sheet = workbook.createSheet();
  // 如要新建一名为"会员登录统计"的工作表,其语句为:
  Sheet sheet = workbook.createSheet("会员登录统计");
  // 创建行(row 1)
  Row row1 = sheet.createRow(0);
  // 创建单元格(col 1-1)
  Cell cell11 = row1.createCell(0);
  cell11.setCellValue("今日人数");
  // 创建单元格(col 1-2)
  Cell cell12 = row1.createCell(1);
  cell12.setCellValue(666);
  // 创建行(row 2)
  Row row2 = sheet.createRow(1);
  // 创建单元格(col 2-1)
  Cell cell21 = row2.createCell(0);
  cell21.setCellValue("统计时间");
  //创建单元格(第三列)
  Cell cell22 = row2.createCell(1);
  String dateTime = new DateTime().toString("yyyy-MM-dd HH:mm:ss");
  cell22.setCellValue(dateTime);
  // 新建一输出文件流(注意:要先创建文件夹)
  FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write03.xls");
  // 把相应的Excel 工作簿存盘
  workbook.write(out);
  // 操作结束,关闭文件
  out.close();
  System.out.println("文件生成成功");
  }
  }
  2 、07版本@Test
  public void testWrite07() throws IOException {
  // 创建新的Excel 工作簿
  Workbook workbook = new XSSFWorkbook();
  ......//参考03版本代码
  // 新建一输出文件流(注意:要先创建文件夹)
  FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write07.xlsx");
  ......//参考03版本代码
  }
  注意:如果针对不同版本的Excel使用了不适合的类库,则会报告异常
  org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] 四、大文件写-HSSF、XSSF和SXSSF
  1、使用HSSF
  缺点:最多只能处理65536行,否则会抛出异常
  java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)
  优点:过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快 @Test
  public void testWrite03BigData() throws IOException {
  //记录开始时间
  long begin = System.currentTimeMillis();
  //创建一个SXSSFWorkbook
  //-1:关闭 auto-flushing,将所有数据存在内存中
  Workbook workbook = new HSSFWorkbook();
  //创建一个sheet
  Sheet sheet = workbook.createSheet();
  //xls文件最大支持65536行
  for (int rowNum = 0; rowNum < 65536; rowNum++) {
  //创建一个行
  Row row = sheet.createRow(rowNum);
  for (int cellNum = 0; cellNum < 10; cellNum++) {//创建单元格
  Cell cell = row.createCell(cellNum);
  cell.setCellValue(cellNum);
  }
  }
  System.out.println("done");
  FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write03-bigdata.xls");
  workbook.write(out);
  // 操作结束,关闭文件
  out.close();
  //记录结束时间
  long end = System.currentTimeMillis();
  System.out.println((double)(end - begin)/1000);
  }
  2、使用XSSF
  缺点: 写数据时速度非常慢, 非常耗内存,也会发生内存溢出,如100万条
  优点:可以写较大的数据量,如20万条 @Test
  public void testWrite07BigData() throws IOException {
  //记录开始时间
  long begin = System.currentTimeMillis();
  //创建一个XSSFWorkbook
  Workbook workbook = new XSSFWorkbook();
  ......
  FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write07-bigdata.xlsx");
  ......
  }
  3、使用SXSSF
  优点:可以写非常大的数据量,如100万条甚至更多条,写数据速度快,占用更少的内存
  注意:
  过程中会产生临时文件,需要清理临时文件(C:UsershelenAppDataLocalTemp)
  默认由100条记录被保存在内存中,如果查过这数量,则最前面的数据被写入临时文件
  如果想自定义内存中数据的数量,可以使用new SXSSFWorkbook(数量) @Test
  public void testWrite07BigDataFast() throws IOException {
  //记录开始时间
  long begin = System.currentTimeMillis();
  //创建一个SXSSFWorkbook
  Workbook workbook = new SXSSFWorkbook();
  ......
  FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write07-bigdata-fast.xlsx");
  workbook.write(out);
  // 操作结束,关闭文件
  out.close();
  //清除临时文件
  ((SXSSFWorkbook)workbook).dispose();
  //记录结束时间
  long end = System.currentTimeMillis();
  System.out.println((double)(end - begin)/1000);
  }
  SXSSFWorkbook-来至官方的解释:实现"BigGridDemo"策略的流式XSSFWorkbook版本。这允许写入非常大的文件而不会耗尽内存,因为任何时候只有可配置的行部分被保存在内存中。
  请注意,仍然可能会消耗大量内存,这些内存基于您正在使用的功能,例如合并区域,注释......仍然只存储在内存中,因此如果广泛使用,可能需要大量内存。

4月8日股市早知道储能重大突破新型冬眠电池仅受热时释放能量为了释放可再生能源的全部潜力,科学家们正不断探索先进的电池技术,努力解决太阳能和风能发电的间歇性问题。据报道,太平洋西北国家实验室(PNNLSamsung三星手机安卓系统存在严重安全漏洞黑客可任意盗取资料网络资安公司Kryptowire近期调查发现,韩国3C大厂三星(Samsung)搭载的Android各系列机型,都存在一组神祕代号,能让黑客在远端接管设备,包括拨打电话安装及删除应福布斯全球亿万富豪榜马斯克2190亿美元排名榜首,钟睒睒排17最新福布斯全球亿万富豪榜,美国太空探索技术公司SpaceX创始人特斯拉CEO埃隆马斯克(ElonMusk),凭借2190亿美元净值成为最新首富。亚马逊创始人杰夫贝索斯(JeffBe2021年度十大创新热水器品牌榜称霸国内半壁市场,你家里在用哪个2021年度十大创新热水器品牌是平台数据库联合货东家根据平台内热水器技术搜索指数热水器产品外观创新指数热水器产品技术创新指数热水器产品实用性创新指数渠道搜索技术指数售后维修便捷指数新能源何时见顶?小区门口的包子铺会告诉你(一)我们假设这一种情况。你买的房子终于交付,你也搬了进去,随着新小区入住率持续提升,小区出入人流量迅速增加。与此同时,小区外侧还没有商铺开门。于是,早高峰时期,你出小区会看到小区明年选股的主要方向,行情稳定后,谁能起死回生?新能源肯定还是未来的大方向但是资本市场向来提前炒作,所以新能源目前的估值肯定是对于未来有了一定的透支,所以新能源行业未来还会反复活跃,但是应该讲可能会出现剧烈的分化有一些被证伪的估为何有人说,讲好倪光南故事对提高科技工作者积极性意义深远?是的,他对凝聚人才着深远的意义。假如我们没有处理好这件事,他就成了样榜,没有背景的人,会退步,不敢投身祖国。倪光南有虚名,但他生活得太苦。因为倪光南热爱研究芯片,即使遇到挫折,还是面向对象编程,为什么这么多人讨厌它?我是旧时代的残党,新时代没有承载我的船。如果面向对象编程是一个人,我猜他自己在不断被非议的今天,一定会这样感慨。说实话,我用面向对象方式编程已经十几年了,我做架构设计离不开它,做系薇娅逃税被罚后,直播卖货信誉会不会整体受损?不会的,毕竟前有许家印,后有柳传志,动辄万亿,人家小薇这十几个亿对于已经麻木的我们来说已经不算个钱了。会的,以前大家关注淘宝直播是因为头部大主播可以拿到品牌全网最低的价格,后来天猫柳传志是与谁站在一起ampquot同仇敌忾ampquot?有人认为不顾国家利益的卖国行为,5G的几项标准投票时有的投给了外国企业,有的投给了华为,使华为的相关技术失去了成为5G标准的机会,司马南炮轰联想贱卖国有资产,使联想陷入舆论风口,柳有没有使模糊陈旧的老照片翻新成清晰照片的app?可以用snapseed里面的细节突出功能微调。里面有一个结构的数值增加,会使模糊照片更加锐利。简单看一下前后对比效果。正常效果增加结构数值后的效果。这样的操作会使照片清晰一点,但是
你手机中最常用的APP是哪三个?你觉得好用吗?这个问题挺有意思的。我就来说说手机里最常用的三个APP吧。首当其冲的是今日头条。估计时下大多数人的手机里都会有这个APP,看新闻,获取资讯挺好的。此时此刻,我就是用今日头条回答问题国内5G手机普及速度全球领先,苹果OPPO表现亮眼Canalys最新报告显示,今年上半年全球5G手机出货2。39亿台,占整体出货量的36。1,同比提升225。9,其中大中华区的占比高达78。1,远高于其它其它各区域。而从不同厂商来反垄断情绪高涨苹果(AAPL。US)和谷歌(GOOG。US)不断创新高的原因何在?智通财经APP获悉,D。A。Davidson高级研究分析师TomForte周四表示,苹果(AAPL。US)和谷歌(GOOG。US)投资者对反垄断风险不屑一顾的态度令人感到奇怪。据悉从来没有用过苹果手机的举下手,能否说说为什么不用?我就从来没有用过苹果手机,原因很简单,因为我买不起。我到现在为止只用过两个智能机,2015年买第一个智能手机是我们当地vivo手机专卖店里最便宜的vivo手机799元,最低配置的。苹果66s相当于什么机型?感谢您的阅读!苹果6和苹果6S这两款手机相当于什么机型?如果说iPhone6和iPhone6S的话,他们可能在性能方面和现在的千元手机相比,都有一些相形见绌。毕竟现在的千元手机,它苹果12在一片骂声中继续大卖说明了什么?华为会不会败给苹果?就一台破手机,天天喊,搞得社会撕裂,有意思么?中美之间贸易额如此之大,都是互利的,你买我的,我买你的,政治是政治,经济是经济,除非断交了,否则永远都有买美国货物的行为,这些人都是汉日本一个科技如此发达的国家,为什么我没发现日本有像华为科技含量那么高的公司呢?乐观是件好事,但是盲目的乐观就不可取了。回到问题本身,日本到底有没有科技发达的公司呢?作为亚洲发达国家的日本,其科技实力究竟几何?亚洲一共有四个发达国家日本,韩国,新加坡,以色列。油性的耳垢戴助听器该怎样清理?油性耳垢的人也是可以佩戴助听器的,只要注意清洁保养就可以了。如果用的是耳背机,就要注意清洗耳塞。如果用的是定制机,一个是要注意耵聍头的选择,选择防油性耵聍效果好的耵聍头。二个是要注机器人炒菜,真的靠谱吗?上篇随着自动化和智能技术的发展及广泛应用,机器人从最初仅在工业领域应用,开始逐渐渗入到了各种服务行业,近十年来市场上出现了大大小小多种中餐炒菜机器人,这些产品的开发者们,试图通过炒菜机腾讯视频朝钱点播一条走不完的套路?图片来源视觉中国钛媒体注本文来自于微信公众号新浪科技(IDtechsina),作者徐苑蕾,编辑韩大鹏,钛媒体经授权发布。上海市消保委点名批评腾讯视频独播剧扫黑风暴捆绑销售,一周后腾吃相难看,腾讯视频再次出现超前付费点播制腾讯与爱奇艺两家影视巨头,目前也算是国内知名的影视平台,近些年来,两家也播出了很多优秀精良的影视作品,让我们在剧荒时看到了一个又一个新秀,并且腾讯这些年在动漫播出方面也颇为优秀,作