本文使用jxl.jar工具类库实现读取Excel中指定列的数据。

jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的。这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。

  • 支持Excel 95-2000的所有版本
  • 生成Excel 2000标准格式
  • 支持字体、数字、日期操作
  • 能够修饰单元格属性 支持图像和图表

jxl操作Excel包括对象Workbook(工作簿),Sheet(工作表) ,Cell(单元格)。一个Excel就对应一Workbook对象,一个Workbook可以有多个Sheet对象,一个Sheet对象可以有多个Cell对象。其主要的API说明如下:

新建并获取工作薄:

Workbook workbook = Workbook.getWorkbook(inputStream);

读取工作表:

workbook.getSheet(int index);//index从0开始,0对应Sheet1

获取单元格:

sheet.getCell(int columnIndex, int rowIndex);

读取单元格内容:

cell.getContents();

代码如下:

/**
* 读取excel表格中特定的列
*
* @param file
* 文件
* @param index
* 第index列(0开始)
* @throws Exception
*/
public static void readColumn(File file, int index) throws Exception {
InputStream inputStream = new FileInputStream(file.getAbsoluteFile());
Workbook workbook = Workbook.getWorkbook(inputStream);
Sheet sheet = workbook.getSheet(0);
int rows = sheet.getRows();
int columns = sheet.getColumns();
for (int i = 1; i < rows; i++) {
Cell cell = sheet.getCell(index, i);
System.out.println(cell.getContents());
}
}

用桌面上的一个Excel文件进行测试:

public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\世界名著.xlsx");
try {
System.out.println("正在读取书名...");
readColumn(file, 0);//读取第一列
System.out.println("读取完毕");
} catch (Exception e) {
e.printStackTrace();
}
}

奇怪,竟然报错了:

这是使用jxl时一个需要注意的地方,jxl只支持Excel 95-2000 工作簿(*.xls),不支持Excel 工作簿(*.xlsx)。解决办法是把文件另存为xls的格式,注意一定要打开Excel文件再进行“另存为”操作,直接改后缀名是不可以的!

注意代码中也要相应的改一下,更改以后进行再次进行测试:

对比二者,完美!

Java读取Excel指定列的数据详细教程和注意事项的更多相关文章

  1. Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

    1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...

  2. java读取Excel表格中的数据

    1.需求 用java代码读取hello.xls表格中的数据 2.hello.xls表格 3.java代码 package com.test; import java.io.File; import j ...

  3. 读取Excel表格日期类型数据的时候

    用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel 2.Excel数据处理: Excel存储日期.时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化 1 ...

  4. 利用java反射机制实现读取excel表格中的数据

    如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...

  5. java 读取Excel文件并数据持久化方法Demo

    import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...

  6. java用poi读取Excel表格中的数据

    Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...

  7. Java读取Excel数据

    Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 下图是excel文件的路径和文件名 下图是exce ...

  8. Java读取excel表格

    Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建, ...

  9. java程序转换excel中科学记数法的数据为date类型

    今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能.   但是导出后出现了一个问题,里边有一列存储时间的,存储的是lon ...

随机推荐

  1. vue的父子组建之间的通信(-),基于props和$emit之间的传递

    对于vue而言,以为其核心思想为前端组建化.所以组建之间的通信必不可少. 相信接触过Angularjs的童鞋都知道angularjs的控制器之间的通信机制. 1:父传子:官方的$broadcast() ...

  2. vuex学习(二)

    参考:https://segmentfault.com/a/1190000015782272 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --sav ...

  3. ES6-个人学习大纲

    1,let   const学习补充 1.1,let的知识点: 01-作用域只限制在当前代码块内,代码块形式如下: { var str = '张三'; console.log(str); let str ...

  4. Cordova/Ionic Android 开发环境搭建 - Windows系统

        电脑操作系统 - windows 10 IDE - WebStorm 2019 Node v10.15.3 npm v6.4.1 Ionic v3 Angula v5 Cordova 移动设备 ...

  5. boa调试

    Cannot access memory at address 0x0 0x400fc7e0 in ?? () 0 0x4014f0dc in wcscasecmp_l () from /lib/li ...

  6. kali linux 网络渗透测试学习笔记(二)OWASP ZAP工具扫描SQL injection漏洞失败

    按照惯例,利用OWASP ZAP工具扫描SQL injection漏洞时,应该很快就可以扫描出来,但是在笔者进行扫描的时候,却遇到了以下状况: 这说明了该工具根本就没能够扫描出SQL注入的漏洞,不知道 ...

  7. 【计算机篇】Office 2016 for Mac 安装和破解教程

    免责声明 请亲们支持正版.这教程旨在分享,供参考. 为啥写这篇文章 对于大多数使用 Mac 的用户而言,虽然有苹果自家的办公软件,但功能少,用起来不舒服.而 Offer 2016 版的需要登录激活购买 ...

  8. [Swift]LeetCode391. 完美矩形 | Perfect Rectangle

    Given N axis-aligned rectangles where N > 0, determine if they all together form an exact cover o ...

  9. [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence

    Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...

  10. 开发常用的 Android 函数库

    第三方函数库(译者注:包括第三方提供的 SDK,开源函数库)以惊人的方式助力着 Android 开发,借助这些其他开发人员辛勤工作的成果,我们开发起来更轻松和快捷.目前存在成千上万的函数库,如何选择正 ...