这一章的内容就是告诉各位同学如何入门POI的简单使用,再之后我们还会学习如何封装模版,由于个人时间问题,不定期更新!如果有需要,请再QQ中联系我,好了,开始工作!

  新建一个Java项目,首先需要一些列的jar包

  直接上图讲解:

  

  这里需要注意jar包的下载,需要再Apache官网 http://poi.apache.org/download.html  中下载对应POI的包,里面有对应的API和帮助文档,

  再搭建过程中遇到了缺少xmlbeans.jar的情况,自己想办法解决,我曾经告诉你们如何下载jar文件的网站

  新建一个excel文件reader.xlsx中内容如下:

  

  入门测试代码:

public class PoiReaderTest {

    public static void main(String[] args) {
try {
Workbook workbook = WorkbookFactory.create(new File("E://java-workspace//shxt-2014//1001-POI读取Excel//xlxs//reader.xlsx"));
Sheet sheet = workbook.getSheetAt(0);//通过索引获取
//获取行
Row row = sheet.getRow(0);
Cell cell = row.getCell(0); System.out.println(cell.getStringCellValue()); } catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }

  读取全部信息,这里有一个简单的封装,不合格的封装,就是为了测试而已!

public class PoiReaderAllTest {

    public static void main(String[] args) {
try {
Workbook workbook = WorkbookFactory.create(new File("E://java-workspace//shxt-2014//1001-POI读取Excel//xlxs//reader.xlsx"));
Sheet sheet = workbook.getSheetAt(0);//通过索引获取
//获取最后的行数
System.out.println(sheet.getLastRowNum()); //进行遍历
for(int i=0;i<=sheet.getLastRowNum();i++){
//获取每行
Row row = sheet.getRow(i);
//对列数进行遍历
for(int j=0;j<row.getLastCellNum();j++){
//获取单元格
//Cell cell = row.getCell(j);
//每个字符串都有自己的类型,所以需要对每个单元格的数据进行转换
System.out.print(getCellValue(row.getCell(j))+"--");
}
System.out.println();
} } catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} private static String getCellValue(Cell cell){
//返回值
String result = null;
switch (cell.getCellType()) {//获取单元格的类型比较 case Cell.CELL_TYPE_BLANK:
result = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
result = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
result = String.valueOf(cell.getCellFormula());
break;
case Cell.CELL_TYPE_NUMERIC:
result = String.valueOf(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
result = cell.getStringCellValue();
break; default:
result = null;
break;
}
return result;
} }

  

[实战篇入门]01-POI读Excel的更多相关文章

  1. [实战篇入门]02-POI简单创建Excel

    周日的小讲堂要讲到这里,趁中午时间写点东西,记录昨天晚上完成的东西,在这里只是简单的介绍如何创建对于样式问题,我不过多的说,因为之后的教程会使用模版方式搞定! 在学习这段代码的时候,希望各位访问Apa ...

  2. java使用jxl,poi解析excel文件

    public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...

  3. POI打印Excel

    一.POI概述 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 结构:HSSF - 提供读写Mic ...

  4. Systemd 入门教程:实战篇

    Systemd 入门教程:实战篇 上一篇文章,介绍了 Systemd 的主要命令,这篇文章主要介绍如何使用 Systemd 来管理我们的服务,以及各项的含义: 一.开机启动 对于那些支持 System ...

  5. Sping Boot入门到实战之入门篇(三):Spring Boot属性配置

    该篇为Sping Boot入门到实战系列入门篇的第三篇.介绍Spring Boot的属性配置.   传统的Spring Web应用自定义属性一般是通过添加一个demo.properties配置文件(文 ...

  6. Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用

    该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...

  7. Sping Boot入门到实战之入门篇(一):Spring Boot简介

    该篇为Spring Boot入门到实战系列入门篇的第一篇.对Spring Boot做一个大致的介绍. 传统的基于Spring的Java Web应用,需要配置web.xml, applicationCo ...

  8. Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置

    该篇为Sping Boot入门到实战系列入门篇的第四篇.介绍Spring Boot自动化配置的基本原理与实现.   Spring Boot之所以受开发者欢迎, 其中最重要的一个因素就是其自动化配置特性 ...

  9. Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter

    在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfigu ...

随机推荐

  1. ServiceStack.Ormlit 事务

    应该使用这个方法开启事务 public static IDbTransaction OpenTransaction(this IDbConnection dbConn) { return new Or ...

  2. oracle数据库分页原理

    Oracle数据库的rownum 在Oracle数据库中,分页方式没有MySql这样简单,它需要依靠rownum来实现.Rownum表示一条记录的行号,值得注意的是它在获取每一行后才赋予.因此,想指定 ...

  3. 【转】Angular.js VS. Ember.js:谁将成为Web开发的新宠?

    本文源自于Quora网站的一个问题,作者称最近一直在为一个新的Rails项目寻找一个JavaScript框架,通过筛选,最终纠结于 Angular.js和 Ember.js. 这个问题获得了大量的关注 ...

  4. 自测之Lesson5:标准I/O

    题目:使用perror函数和strerror函数编写一个程序. 程序代码: #include <stdio.h> #include <errno.h> #include < ...

  5. 寒假学习计划——MOOC

    课程 西安交通大学[https://www.icourse163.org/course/XJTU-46006?tid=1002265006] 理由 本身中国大学mooc里c++课程不多,完结了能够有很 ...

  6. OSG数学基础:坐标系统

    坐标系是一个精确定位对象位置的框架,所有的图形变换都是基于一定的坐标系进行的. 三维坐标系总体上可以分为两大类:左手坐标系和右手坐标系. 常用的坐标系:世界坐标系.物体坐标系和摄像机坐标系. 世界坐标 ...

  7. 201621044079 week13 网络

    作业13-网络 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以 ...

  8. PAT 1058 选择题

    https://pintia.cn/problem-sets/994805260223102976/problems/994805270356541440 批改多选题是比较麻烦的事情,本题就请你写个程 ...

  9. [C/C++] 结构体存储问题

    64位操作系统,不同类型变量对应的字节数为: char : 1个字节 char*(即指针变量) : 8个字节 //32位占4个字节 short int : 2个字节 int : 4个字节 unsign ...

  10. js 关键字 in 判断 一个属性或方法是否属于一个对象

    判断对象是否为数组/对象的元素/属性: 格式:(变量 in 对象)......注意,,, 当“对象”为数组时,“变量”指的是数组的“索引”: 当“对象”为对象是,“变量”指的是对象的“属性”. 判断 ...