上一篇为大家介绍了通过xls.jar的方式生成Excel的方法,本篇就为大家再介绍一下通过poi方式实现Excel文件的读写操作,内容很简单,代码注释很清晰。

  1、生成Excel文件:

import java.io.File;
import java.io.FileOutputStream;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class poi_write {public static void main(String[] args) {final String [] str = {"id", "name", "sex"};//创建Excel工作薄HSSFWorkbook workbook = new HSSFWorkbook();//创建Excel工作表HSSFSheet sheet = workbook.createSheet();//创建第一行HSSFRow row = sheet.createRow(0);HSSFCell cell = null;//添加表头for (int i = 0; i < str.length; i++) {cell = row.createCell(i);cell.setCellValue(str[i]);}//追加数据for (int i = 1; i <= 10; i++) {HSSFRow rows = sheet.createRow(i);HSSFCell cell_id = rows.createCell(0);cell_id.setCellValue(i+"");HSSFCell cell_name = rows.createCell(1);cell_name.setCellValue("name:"+i);HSSFCell cell_sex = rows.createCell(2);cell_sex.setCellValue("男");}//文件保存路径File file = new File("E:/cnblogs/poi_text.xls");try{if(!file.exists()){file.createNewFile();}FileOutputStream fileOut = new FileOutputStream(file);//创建一个文件输出流对象
            workbook.write(fileOut);fileOut.close();//关闭输出流对象}catch (Exception e) {e.printStackTrace();}System.out.println("Excel文件已生成");}}

  2、读取Excel文件:

import java.io.File;
import java.io.IOException;import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class poi_reading {public static void main(String[] args) {final File file = new File("E:/cnblogs/poi_text.xls");if(file.exists()){try {HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));//workbook.getSheet("Sheet0");获得指定的工作表//HSSFSheet sheet = workbook.getSheet("Sheet0");//workbook.getSheetAt(0);默认获得第一个工作表HSSFSheet sheet = workbook.getSheetAt(0);int firstRowNum = 0;//获得当前sheet最后一行行号int lastRowNum = sheet.getLastRowNum();for (int i = firstRowNum; i <= lastRowNum; i++) {HSSFRow row = sheet.getRow(i);//获得当前行最后单元格列号int lastCellNum = row.getLastCellNum();for (int j = 0; j < lastCellNum; j++) {HSSFCell cell = row.getCell(j);String value = cell.getStringCellValue();System.out.print(value+" ");}System.out.println("");}} catch (IOException e) {e.printStackTrace();}}else{System.out.println("读取文件不存在");}}}

  好了,基本的方法已经为大家介绍完毕,更好的效果展示就靠大家自己摸索了。

  不知道大家发现一个问题没?我们生成的Excl文件都是.xls结尾,.xls是office97-2003的版本,而对于2007以后的版本则是以.xlsx结尾。那如何生成高版本的Excel呢?我们不能仅仅是修改一下File文件的后缀名,我们这里需要使用XSSFWorkbook进行创建workbook,然后把剩余的HSSF开头去掉就可以了。不过在这里需要说明的就是,我们不知道用户使用的是低版本还是高版本,所以我们建议大家都使用HSSFWorkbook来进行创建以.xls结尾的Excel文件。

  如有错误,还望指正。谢谢

转载于:https://www.cnblogs.com/AndroidJotting/p/4422950.html

JAVA实现Excel的读写--poi相关推荐

  1. java对excel经行读写

    java对excel经行读写 package com.common.tool.util;import org.apache.poi.hssf.usermodel.*; import org.apach ...

  2. Java实现Excel文件读写

    目录 一.简介 二.maven依赖 三.工具类ExcelUtil 四.测试 4.1.EmployeeVo 4.2.写入数据到Excel 4.3.从Excel读取数据 结语 一.简介   HSSFWor ...

  3. 使用JXL.jar实现JAVA对EXCEL的读写操作

    简介: jxl.jar是通过java操作excel表格的工具类库 jxl操作excel包括对象Workbook(工作簿),Sheet(工作表) ,Cell(单元格). 一个excel就对应一个Work ...

  4. Java对Excel的读写详解(POI)

    <!-- 配置读取excel所需 --> <dependency> <groupId>dom4j</groupId> <artifactId> ...

  5. EasyExcel java实现excel简单读写操作(快速上手,复制粘贴即可)

    EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目. https://github.com/alibaba/easyexcel 一.导入maven坐标 Lombok可选,不导 ...

  6. Java处理Excel:从POI到SPL

    文章目录 POI具有全面而细致的xls读写能力 POI的读写功能很底层 POI查询计算困难 SPL内置高级读写函数 SPL提供足够的查询计算能力 SPL支持更优的应用架构 SPL资料 对Excel进行 ...

  7. java excel处理框架,Java三方—-excel框架之POI的使用一

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.pdf框架之IText的使用,参见我的博客:Java ...

  8. java导出excel 客户端_Java poi导出Excel下载到客户端

    Java poi 导出Excel并下载到客户端,具体内容如下 Maven配置,包含了其他文件格式的依赖,就全贴出来了 org.apache.poi poi-excelant 3.12 org.apac ...

  9. java 读取Excel数据(POI)(一个sheet或者多个sheet)

    1.添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml< ...

最新文章

  1. 手把手教你用Kaggle开启机器学习之旅(附资源链接)
  2. 智能合约的核心思想、语法重点、编程模式、示例、规范及架构
  3. 组合框CComboBox响应函数
  4. (0083)iOS开发之layoutSubviews 的调用时机
  5. [TensorRT] ERROR: Network must have at least one output
  6. Mac不装软件校验MD5和SHA1值
  7. Java文本预处理 去除非法字符
  8. Linux中buff-cache占用过高解决方案
  9. Javascript交互式金融股票基金图表JavaScript Stock Chart
  10. HWIDGen 激活出错 解决:输入错误: 没有文件扩展“.vbs”的脚本引擎
  11. 工业通讯总线RS485和RS232
  12. 安卓x5webview 加载网页 失败_#PY小贴士# 抓下来的网页为什么没有我要的内容?...
  13. HiveSQL分位数函数percentile()使用详解+实例代码
  14. 手指滑动控制系统全局音量的程序(中)
  15. EChat(简易聊天项目)七、保存聊天记录
  16. 笔记代码(各种算法实现)
  17. Toasts官方教程
  18. Android拍照指定尺寸,相机在Android中,如何获得最佳尺寸,预览尺寸...
  19. antd react table 嵌套子表格例子
  20. Python:实现knapsack背包问题算法(附完整源码)

热门文章

  1. linux callback函数,C++回调函数(callback)的使用
  2. 周三多管理学第七版pdf_为什么说管理学原理是企业领导的必修课?
  3. python选择题题库for、if_Python题目1:猜年龄(for、if else和where)
  4. leetcode155|最小栈(java)题解
  5. JVM内存结构|程序计数器
  6. 计算机应用技术备选计划方案,华东理工大学博士研究生培养方案计算机应用技术、计算机软件与理论、计算机系统结构二级学科(学科代码:081203、081202、081201)信息科学与工程学院...
  7. python中变量不需要事先声明_第二章 Python 变量
  8. php网站后台无法退出,zblog“网站关闭”后进入不了后台的解决方法
  9. php+ok,php fscokopen实现数据异步调用代码
  10. php+如何按文字分割文件夹,PHP实现的大文件切割与合并功能示例