Java 操作excel
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相关推荐
- java excel读取操作,Java 操作 Excel (读取Excel2003 2007,Poi兑现)
Java 操作 Excel (读取Excel2003 2007,Poi实现) 一. Apache POI 简介( http://poi.apache.org/) 使用Java程序读写Microsoft ...
- java excel类库,jExcelApi Java 操作 Excel 的类库
jExcelApi Java 操作 Excel 的类库 Java Excel API(JXL)是一个成熟,开源的用来操作Excel电子表格的Java类库,支持读取,修改,写入等操作.这个项目基于GPL ...
- 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 ...
- java操作Excel、PDF文件
java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...
- java操作excel表
文章分类:Java编程 http://developers.sun.com.cn/blog/functionalca/entry/java读写excel简介 JAVA EXCEL API简介 Java ...
- JAVA操作Excel时文字自适应单元格的宽度设置方法
使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...
- java excel 插入新行_POI ,Java 操作 Excel 實現行的插入(insert row)
POI ,Java 操作 Excel 實現行的插入(insert row) 前幾天,正在做一個項目,主要用 POI 來操作 Excel 其中,要使用一個,插入功能.主要是因為從數據庫,返回結果集(數據 ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
- Java操作Excel之Excel文件的下载
1.有的时候在Web应用会有下载Excel的需求,现分享下后台实现下载Excel文件的代码 @RequestMapping(value = "/exportExcel", meth ...
- Java 操作excel表格 - JXL(Java excel api)
Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...
最新文章
- 不使用任何框架实现CNN网络
- 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )
- 给虚拟机中的linux系统增加一个硬盘
- Undefined Reference to Typeinfo
- Failed to load nodelet ‘/kinect2_bridge` of type `kinect2_bridge/kinect2_bridge_nodelet` to manager
- 06-广度优先搜索:图、队列
- 06-Mapper动态代理
- 微信开发基础 获取用户OpenID 列表
- 帝国CMS7.2阿里大于云短信插件(UTF-8)
- Linux read返回不足值,系统级I/O
- linux下vi编辑器的命令大全,linux下VI编辑器命令大全(超级完整版)
- LFS6.3安装全过程(一)
- vue 后端数据成功返回 页面不渲染_vue能获取到数据数据却渲染不到页面上,为什么?...
- Angular实践----前言与概览
- mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
- Microsoft Office Home and Student 2007产品密匙
- PeopleSoft概述及开发工具(application desinger)介绍
- 苹果放弃Intel基带应是大概率事件
- Java学习---控制流程与方法
- usb gadget g_webcam uvc gadget调试
热门文章
- 《本地计算机DNS缓存文件》
- a eraser eraser还是an_an. eraser是什么意思
- 成功解决Unable to allocate xxx MiB for an array with shape (xxxx, xxxx)
- numpy block创建分块矩阵
- 7-6 愤怒的牛 (25 分)
- 【网络工程师】<软考中级>局域网与城域网
- 谷歌牵手265解密:双方将合作推广Adsence
- 用html5实现一个播放器,6 个基于 HTML5 实现的多媒体播放器
- 图像配准融合(一)——基于互信息的图像配准方法(c++)
- 网络笔记(18)DNS协议:网络世界的地址簿