原标题:用Java巧妙的解析Excel中的POI

相信各位小伙伴们,在做Java开发的时候,有时候会需要你用Java语言去解析Excel中的POI,这个时候肯定很多小伙伴们会懵逼,那么究竟是怎么实现的呢?本文就这个问题做了一个详细解析。

引入依赖:

解析代码:

public static void main(String[] args) {

// 【读取】------------------------------------------------------------

// 从 template.xls 文件中读取数据,并保存到 ArrayList 中后打印输出。

ArrayList list = new ArrayList();

try {

// 1、获取文件输入流

InputStream inputStream = new FileInputStream("/Users/hrvy/temp/template.xls");

// 2、获取Excel工作簿对象

HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

// 3、得到Excel工作表对象

HSSFSheet sheetAt = workbook.getSheetAt(0);

// 4、循环读取表格数据

for (Row row : sheetAt) {

// 首行(即表头)不读取

if (row.getRowNum() == 0) {

continue;

}

// 读取当前行中单元格数据,索引从0开始

String country = row.getCell(0).getStringCellValue();

String province = row.getCell(1).getStringCellValue();

String city = row.getCell(2).getStringCellValue();

Area area = new Area();

area.setCountry(country);

area.setProvince(province);

area.setCity(city);

list.add(area);

}

System.out.println(list.toString());

// 5、关闭流

workbook.close();

} catch (IOException e) {

e.printStackTrace();

}

// 【写出】------------------------------------------------------------

// 新建一个 template_copy.xls 文件,并将 ArrayList 中的数据写入 template_copy.xls 文件

// 1.在内存中创建一个excel文件

HSSFWorkbook workbook = new HSSFWorkbook();

// 2.创建工作簿

HSSFSheet sheet = workbook.createSheet();

// 3.创建标题行

HSSFRow titlerRow = sheet.createRow(0);

titlerRow.createCell(0).setCellValue("国家copy");

titlerRow.createCell(1).setCellValue("省份copy");

titlerRow.createCell(2).setCellValue("城市copy");

// 4.遍历数据,创建数据行

for (Area area : list) {

// 获取最后一行的行号

int lastRowNum = sheet.getLastRowNum();

// 添加新行

HSSFRow dataRow = sheet.createRow(lastRowNum + 1);

dataRow.createCell(0).setCellValue(area.getCountry());

dataRow.createCell(1).setCellValue(area.getProvince());

dataRow.createCell(2).setCellValue(area.getCity());

}

// 5.创建文件名

String fileName = "template_copy.xls";

// 6.获取输出流对象

OutputStream outputStream;

try {

outputStream = new FileOutputStream("/Users/hrvy/temp/" + fileName);

// 7.写出文件,关闭流

workbook.write(outputStream);

workbook.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

责任编辑:

java excel row遍历空_用Java巧妙的解析Excel中的POI相关推荐

  1. java 多态判断非空_收藏Java 面试题全梳理

    脚本之家 你与百万开发者在一起 来源 | Java建设者(ID:javajianshe) 作者 |cxuan 如若转载请联系原公众号 Java 基础篇 Java 有哪些特点 并发性的:你可以在其中执行 ...

  2. java excel row遍历空_Java poi读取,写入Excel,处理row和cell可能为空的情况

    首先需要导入包 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NP ...

  3. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  4. jpa oracle 传参int类型判空_企业级Java开发之图解JPA核心构件

    编者按: 企业级的软件开发中,Java一直都是中流砥柱.在Java EE8之后,Oracle公司把企业级Java标准控制权转交Eclipse基金.最新或·和以后的企业级Java将冠名为Jakarta ...

  5. java 对象验证非空_判断Bean对象指定字段非空

    判断Bean对象指定字段非空. 方案: 在bean对象上增加注解,指定字段非空,返回异常信息有明确字段描述,省去不必要的if.else判断. 新建注解类 /** * 参数校验,判断字段非空.返回异常文 ...

  6. java 多态判断非空_跳槽涨薪季面试题之java基础(一)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 为迎接金九银十跳槽涨薪季,小编汇总了java精编版面试题,大概从java基础.java8特性.多线程.spring.springboot. ...

  7. java 序列化成xml文件_将Java对象序列化成JSON和XML格式

    1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...

  8. java高并发面试题目_列举Java高并发面试题附答案解析

    Java高并发面试题是程序员面试过程中的必修课,只有熟练掌握这些技术要点,在我们的学习中才会脱颖而出,在这里,达内石家庄Java培训老师作深入解答. Java并发面试题附答案 1. 什么是原子操作?在 ...

  9. java的for循环嵌套_优化Java的for循环嵌套的高效率方法

    两个list中分别装有相同的对象数据. list1中有3万条对象数据. list2中有2万条对象数据(但是对象中的某个属性变量为空).两个list中的id或者其他变量都一模一样.请用最快的方式找出li ...

最新文章

  1. Eclipse创建struts.xml
  2. 【 Notes 】COMPARISON OF BASIC METHODS AND POSITIONING SYSTEMS
  3. 【剑指offer-Java版】16反转链表
  4. div的visibility和display属性区别
  5. Altium designer中电路图保存在word中
  6. django后台接收form-data 格式上传的文件
  7. 《leetcode》reverse-integer
  8. 人生致命的八个经典问题
  9. CV中的色彩空间大全
  10. 痞子衡嵌入式:极易上手的可视化wxPython GUI构建工具(wxFormBuilder)
  11. 行为型设计模式(1)—— 责任链模式(Chain of Responsibility Pattern)
  12. svm中的数学和算法
  13. Spring深入学习之IOC与AOP
  14. 附录G 标准模板库方法和函数
  15. 共享该文件当前不能用户此计算机,局域网共享常见问题解决汇集
  16. Spring Festival
  17. 智掌柜扫码点单,帮助店家解决开店烦恼
  18. uni.app开发物联网小程序
  19. Git步步进阶---Git tag操作全解析
  20. Linux系统部署apk配置nginx

热门文章

  1. (二)【Matlab】Matlab矩阵处理
  2. Java 开发工程师的核心竞争力
  3. 遍历Python字典
  4. 基于PHP大学生英语在线教学网
  5. STM32 四轴无人机设计——遥控器PPM信号
  6. 关于嵌入式常用显示屏的总结
  7. 【机器学习】ICA算法简介
  8. 模糊查询和sql语句的拼接
  9. Syscall的实现
  10. 关于oracle中ora-00600的报错