Apache Poi

HSSF(xls) XSSF(xlsx) 和 SXSSF

  • HSSF: POI 对 03版本以及之前excel(.xls结尾)文件的Java操作实现类 .xls格式单个工作表最多支持65536行,256列。
  • XSSF: POI对07版本以及之后excel(.xlsx结尾)文件的Java操作实现类 .xlsx格式最多支持1048576行,16384列。
  • SXSSF: POI对XSSF操作的扩展类,大量文件操作速度更快。

创建Workbook(工作表)和Sheet

  • HSSF:
Workbook wb = new HSSFWorkbook();
Sheet sheet1 = wb.createSheet("new sheet");
  • XSSF:
Workbook wb = new XSSFWorkbook();
Sheet sheet1 = wb.createSheet("second sheet");

注意:
1. 工作表名称不得超过31个字符
2. 不得包含{ 0x0000,0x0003,: ,\ ,/,?,* ,[ ,] }中任何一个字符

创建单元格

// 创建一个工作表
Workbook wb = new XSSFWorkbook();//创建一个sheet
Sheet sheet = wb.createSheet("new sheet");//创建一个行 0 表示第1行
Row row = sheet.createRow(0);//创建一个单元格
Cell cell = row.createCell(0);//写入单元格
cell.setCellValue("Hello World !");
单元格接收的格式
  • 字符型: setCellValue(String s)
  • 浮点型: setCellValue(double d)
  • 布尔型: setCellValue(boolean b)
  • 日期型Date: setCellValue(Date date)
  • 富文本: setCellValue(RichTextString rt)
  • 日历型Calendar: setCellValue(Calendar calendar)
  • 本地日期型: setCellValue(LocalDateTime localDateTime)
  • 日期型LocalDate: set日期型LocalDateCellValue(LocalDate value)

代码如下:

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);row.createCell(0).setCellValue(1.1);                  //double
row.createCell(1).setCellValue(new Date());                 //Date
row.createCell(2).setCellValue(Calendar.getInstance());         //Calendar
row.createCell(3).setCellValue("a string");               //String
row.createCell(4).setCellValue(true);                   //boolean
row.createCell(5).setCellType(CellType.ERROR);

创建 Excel

Workbook wb = new XSSFWorkbook();/*创建sheet  row  cell  并写入数据......
*/String fileName = "test.xlsx";OutputStream file = new FileOutputStream(fileName)
wb.write(file);
file.close();

读取Excel

//获取文件输入流
InputStream inputStream = new FileInputStream("/Users/Shared/区域数据.xls");//获取Excel工作簿对象
HSSFWorkbook workbook = new HSSFWorkbook(inputStream);//获取sheet
HSSFSheet sheetAt = workbook.getSheetAt(0);for (Row row : sheet) {if (row.getRowNum() == 0) {continue;}//读取当前行中单元格数据,索引从0开始String areaNum = row.getCell(0).getStringCellValue();String province = row.getCell(1).getStringCellValue();String city = row.getCell(2).getStringCellValue();String district = row.getCell(3).getStringCellValue();String postcode = row.getCell(4).getStringCellValue();
} //关闭流
workbook.close();

单元格类型判断

switch (cell.getCellType()) {case HSSFCell.CELL_TYPE_NUMERIC: // 数字//如果为时间格式的内容if (HSSFDateUtil.isCellDateFormatted(cell)) {      //注:format格式 yyyy-MM-dd hh:mm:ss 中小时为12小时制,若要24小时制,则把小h变为H即可,yyyy-MM-dd HH:mm:ssSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  value=sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue())).toString();                                 break;} else {value = new DecimalFormat("0").format(cell.getNumericCellValue());}break;case HSSFCell.CELL_TYPE_STRING: // 字符串value = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN: // Booleanvalue = cell.getBooleanCellValue() + "";break;case HSSFCell.CELL_TYPE_FORMULA: // 公式value = cell.getCellFormula() + "";break;case HSSFCell.CELL_TYPE_BLANK: // 空值value = "";break;case HSSFCell.CELL_TYPE_ERROR: // 故障value = "非法字符";break;default:value = "未知类型";break;}

EasyExcel

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

Java 操作excel相关推荐

  1. java excel读取操作,Java 操作 Excel (读取Excel2003 2007,Poi兑现)

    Java 操作 Excel (读取Excel2003 2007,Poi实现) 一. Apache POI 简介( http://poi.apache.org/) 使用Java程序读写Microsoft ...

  2. java excel类库,jExcelApi Java 操作 Excel 的类库

    jExcelApi Java 操作 Excel 的类库 Java Excel API(JXL)是一个成熟,开源的用来操作Excel电子表格的Java类库,支持读取,修改,写入等操作.这个项目基于GPL ...

  3. java excel api 下载文件_Java-Excel Java操作Excel POI(Jakarta POI API) - 下载 - 搜珍网

    Java操作Excel/Jakarta POI API/data/Jakarta POI API.doc Java操作Excel/Jakarta POI API/jar/poi-3.0.2-FINAL ...

  4. java操作Excel、PDF文件

    java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...

  5. java操作excel表

    文章分类:Java编程 http://developers.sun.com.cn/blog/functionalca/entry/java读写excel简介 JAVA EXCEL API简介 Java ...

  6. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  7. java excel 插入新行_POI ,Java 操作 Excel 實現行的插入(insert row)

    POI ,Java 操作 Excel 實現行的插入(insert row) 前幾天,正在做一個項目,主要用 POI 來操作 Excel 其中,要使用一個,插入功能.主要是因為從數據庫,返回結果集(數據 ...

  8. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

  9. Java操作Excel之Excel文件的下载

    1.有的时候在Web应用会有下载Excel的需求,现分享下后台实现下载Excel文件的代码 @RequestMapping(value = "/exportExcel", meth ...

  10. Java 操作excel表格 - JXL(Java excel api)

    Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...

最新文章

  1. 不使用任何框架实现CNN网络
  2. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )
  3. 给虚拟机中的linux系统增加一个硬盘
  4. Undefined Reference to Typeinfo
  5. Failed to load nodelet ‘/kinect2_bridge` of type `kinect2_bridge/kinect2_bridge_nodelet` to manager
  6. 06-广度优先搜索:图、队列
  7. 06-Mapper动态代理
  8. 微信开发基础 获取用户OpenID 列表
  9. 帝国CMS7.2阿里大于云短信插件(UTF-8)
  10. Linux read返回不足值,系统级I/O
  11. linux下vi编辑器的命令大全,linux下VI编辑器命令大全(超级完整版)
  12. LFS6.3安装全过程(一)
  13. vue 后端数据成功返回 页面不渲染_vue能获取到数据数据却渲染不到页面上,为什么?...
  14. Angular实践----前言与概览
  15. mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
  16. Microsoft Office Home and Student 2007产品密匙
  17. PeopleSoft概述及开发工具(application desinger)介绍
  18. 苹果放弃Intel基带应是大概率事件
  19. Java学习---控制流程与方法
  20. usb gadget g_webcam uvc gadget调试

热门文章

  1. 《本地计算机DNS缓存文件》
  2. a eraser eraser还是an_an. eraser是什么意思
  3. 成功解决Unable to allocate xxx MiB for an array with shape (xxxx, xxxx)
  4. numpy block创建分块矩阵
  5. 7-6 愤怒的牛 (25 分)
  6. 【网络工程师】<软考中级>局域网与城域网
  7. 谷歌牵手265解密:双方将合作推广Adsence
  8. 用html5实现一个播放器,6 个基于 HTML5 实现的多媒体播放器
  9. 图像配准融合(一)——基于互信息的图像配准方法(c++)
  10. 网络笔记(18)DNS协议:网络世界的地址簿