POI

     <!-- POI Excel --><!-- xls(03) 版 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><!-- xlsx(07) 版 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.9</version></dependency><!-- 日期时间转化 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.5</version></dependency>

看注释

使用0307版不一样用的接口也不一样!!!


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.joda.time.DateTime;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date;/*** @author: 云* @date: 2020/10/22 14:48* @version: 1.0*/
public class ExcelOneWrite {public static void main(String[] args) throws Exception {// 写入// x1();//读取x1();}//预留创建位置static String PATH = "C:\\Users\\zhangyunhao\\Desktop\\";/*** 两个版本的写入* xls 快 大小有限制* xlsx 慢 大小没限制* sxlsx xlsx加速升级版*/public static void x1() throws Exception {//1.创建一个工作薄/*** 03 版xls 结尾  new HSSFWorkbook();* 07 版xlsx 结尾  new XSSFWorkbook();* 用那个 后面的打印 类型一定要对上** 07 版xlsx 升级版 new SXSSFWorkbook();*/Workbook workbook = new XSSFWorkbook();//2.创建一个工作表Sheet sheet = workbook.createSheet("第一张表");//3.创建一个 行Row row1 = sheet.createRow(0);//4.创建一个单元格Cell cell1 = row1.createCell(0); //这里单元格的位置相当于 0,0cell1.setCellValue("今日新增");Cell cell2 = row1.createCell(1);//这里单元格的位置相当于 0,1cell2.setCellValue("日期");//第二行Row row2 = sheet.createRow(1);//4.创建一个单元格Cell cell3 = row2.createCell(0); //这里单元格的位置相当于 1,0cell3.setCellValue("10");Cell cell4 = row2.createCell(1);//这里单元格的位置相当于 1,1String time = new DateTime().toString("yyyy-MM-dd HH:mm");cell4.setCellValue(time);//上面写完 开始创建文件// IO 流                                               03版的结尾是xls 07 版xlsx 结尾FileOutputStream fileOutputStream = new FileOutputStream(PATH + "1.xlsx");//写入workbook.write(fileOutputStream);//关闭 流fileOutputStream.close();/*** 如果用的是 SXSSFWorkbook* 在添加东西的时候会建一个缓存文件,等创建完毕 删除* 清除临时文件*///((SXSSFWorkbook)workbook).dispose();System.out.println("excel文件生成成功!!");}//------------------- 写入结束 ------------------------//------------------- 读取开始 ------------------------public static void x2() throws Exception {InputStream is = new FileInputStream(PATH + "1.xlsx");Workbook workbook = new XSSFWorkbook(is);Sheet sheet = workbook.getSheetAt(0);// 读取标题所有内容Row rowTitle = sheet.getRow(0);if (rowTitle != null) {// 行不为空// 读取cellint cellCount = rowTitle.getPhysicalNumberOfCells();for (int cellNum = 0; cellNum < cellCount; cellNum++) {Cell cell = rowTitle.getCell(cellNum);if (cell != null) {int cellType = cell.getCellType();String cellValue = cell.getStringCellValue();System.out.print(cellValue + "|");}}System.out.println();}// 读取商品列表数据int rowCount = sheet.getPhysicalNumberOfRows();for (int rowNum = 1; rowNum < rowCount; rowNum++) {Row rowData = sheet.getRow(rowNum);if (rowData != null) {// 行不为空// 读取cellint cellCount = rowTitle.getPhysicalNumberOfCells();for (int cellNum = 0; cellNum < cellCount; cellNum++) {System.out.print("【" + (rowNum + 1) + "-" + (cellNum + 1) + "】");Cell cell = rowData.getCell(cellNum);if (cell != null) {int cellType = cell.getCellType();//判断单元格数据类型String cellValue = "";switch (cellType) {case HSSFCell.CELL_TYPE_STRING://字符串System.out.print("【STRING】");cellValue = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN://布尔System.out.print("【BOOLEAN】");cellValue = String.valueOf(cell.getBooleanCellValue());break;case HSSFCell.CELL_TYPE_BLANK://空System.out.print("【BLANK】");break;case HSSFCell.CELL_TYPE_NUMERIC:System.out.print("【NUMERIC】");//cellValue = String.valueOf(cell.getNumericCellValue());if (HSSFDateUtil.isCellDateFormatted(cell)) {//日期System.out.print("【日期】");Date date = cell.getDateCellValue();cellValue = new DateTime(date).toString("yyyy-MM-dd");} else {// 不是日期格式,则防止当数字过长时以科学计数法显示System.out.print("【转换成字符串】");cell.setCellType(HSSFCell.CELL_TYPE_STRING);cellValue = cell.toString();}break;case Cell.CELL_TYPE_ERROR:System.out.print("【数据类型错误】");break;}System.out.println(cellValue);}}}}is.close();}}

EasyExcel

     <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>

需要先创建一个对象

import lombok.Data;
import java.util.Date;@Data
public class DemoData {private String string;private Date date;private Double doubleData;
}

简单读写

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;public class EasyExcel {String path = "C:\\Users\\zhangyunhao\\Desktop\\";private List<DemoData> data() {List<DemoData> list = new ArrayList<DemoData>();for (int i = 0; i < 10; i++) {DemoData data = new DemoData();data.setString("字符串" + i);data.setDate(new Date());data.setDoubleData(0.56);list.add(data);}return list;}// 最简单的写public void simpleWrite() {// 写法1String fileName = path+"EasyExcel.xlsx";// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭// 如果这里想使用03 则 传入excelType参数即可EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());}// 最简单的读public void simpleRead() {String fileName = path+"EasyExcel.xlsx";// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();}}

POI及EasyExcel-读写示例相关推荐

  1. Poi与EasyExcel进行文件读写、模版生成

    一.Poi 简介: Apache POI是Apache软件基金会提供的100%开源库.大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF+ XSSF). 它支持Excel 库的所有基 ...

  2. 手把手教你用java读写excel表格文件(POI,EasyExcel)

    视频链接-我是学习之星我为狂神打call~ [狂神说Java]POI及EasyExcel一小时搞定通俗易懂 想给项目添加一个表格导入导出功能吗? "xxx管理系统"没有导入导出功能 ...

  3. Excel文件解析性能对比(POI,easyexcel,xlsx-streamer)

    问题: 在解析excel内容时,由于用户误操作,偶尔会误录入大量空行,如果代码处置不当,进行文档内容解析时,就会占用大量时间和内存,甚至引起服务器内存消耗殆尽,导致服务无法访问,或者引起OOM. 解决 ...

  4. Excel相关操作(一)POI和easyExcel学习整理

    视频链接:[狂神说Java]POI及EasyExcel一小时搞定通俗易懂 主要内容:如何用java操作excel,主要涉及到POI和easyExcel这两个 学习代码:https://pan.baid ...

  5. POI和EasyExcel实现Excel数据批量读取到数据库

    POI和easyExcel讲解 目的:这一部分我主要是为了实现excel数据批量插入到数据库. 参考:狂神说java的上课笔记 视屏教学网址 常用信息 1,将用户信息导出为excel表格 2,讲Exc ...

  6. poi和easyExcel基于Java操作Excel学习笔记

    1 学习前言 Excel和读写和文件的读写没有本质的区别,都是属于IO操作,我们使用原生的IO就能解决Excel的导入和导出,当然操作起来比较麻烦,性能也不高,这次我们就学习poi和easyExcel ...

  7. Alibaba开源工具EasyExcel读写Excel文件

    前言 工作中使用 excel 表格处理数据是很常见的操作,经常会使用 excel 文件来导入数据或者导出数据,是不是脑海中已经思考有哪些处理excel框架? 小编之前呢就知道Java 解析.生成 Ex ...

  8. 【Excel】Java 操作 Excel 的两种方式:POI、EasyExcel

    1. 了解 POI 和 EasyExcel Java 中,常见的用来操作 Excel 的方式有 2 种:POI.EasyExcel.主要用于:对 Excel 进行导入.导出. POI:Apache.一 ...

  9. Java操作excel(POI、EasyExcel)

    Apache POI和EasyExcel学习 easyExcel easyExcel 官网地址:https://www.yuque.com/easyexcel/doc/easyexcel EasyEx ...

  10. 使用easyexcel读写Excel

    title: "使用easyexcel读写Excel" url: "https://wsk1103.github.io/" tags: Java 学习笔记 JA ...

最新文章

  1. Splunk 会议回想: 大数据的关键是机器学习
  2. dhtmlxgrid导出的js_dhtmlxgrid jsp标签
  3. 设计模式-行为-职责链
  4. 初次使用mybatis Generator
  5. linux 编译安装picocom,Linux pico命令
  6. java.lang.NoClassDefFoundError: com/baidu/ueditor/ActionEnter报错解决
  7. Github注册教程
  8. IDEA项目启动配置
  9. 机器学习算法----KNN K邻近 (K值的选择) (学习笔记)
  10. k8s初始化报错[kubelet-check] Initial timeout of 40s passed.
  11. 组态王 6.55 启停plc_成套设备PLC编程深圳PLC编程
  12. JS基础-事件模型(事件事件流自定义事件事件冒泡/代理)
  13. 【笔试题1】按输入的两个数进行幂级数求和,如s=2的0次方+2的一次方+2的n次方,编码实现
  14. 5个超好用的自媒体网站,免费用
  15. Debian10 Centos7 ProxmoxVE 虚拟硬盘格式转换
  16. 29、ZigBee 开发教程之基础篇—RFID 射频卡
  17. db2 windows版本安装
  18. ps cc2019版为什么做图一复制图层就卡死_PS制作一张具有故障艺术效果的人物海报...
  19. 上海交通大学计算机专业有调剂吗,2019年上海交通大学计算机系考研调剂信息...
  20. 天籁obd接口针脚定义_汽车16针obd接口针脚定义

热门文章

  1. Nginx代理mongoDB TCP Stream
  2. 是工人养活了资本家还是资本家养活了工人?
  3. 深度强化学习系列(一):强化学习概述
  4. 电脑一打开计算机硬盘就嗡嗡,打开计算机后主机嗡嗡声的解决方法
  5. 【Android基础】setTextColor(),setBackgroundColor的参数设置方式
  6. 大二暑假实习生的第一次面试
  7. 神经网络中如何确定隐藏层的层数和大小
  8. 硬盘分区表丢失、修复大事记–分区表修复利器testdisk
  9. excel表左边和右边两部分相同
  10. 续 我不知道被谁加入了集群网,扣费达半年多?(获赔偿了! )