Java读取Excel指定列的数据详细教程和注意事项
本文使用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指定列的数据详细教程和注意事项的更多相关文章
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...
- java读取Excel表格中的数据
1.需求 用java代码读取hello.xls表格中的数据 2.hello.xls表格 3.java代码 package com.test; import java.io.File; import j ...
- 读取Excel表格日期类型数据的时候
用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel 2.Excel数据处理: Excel存储日期.时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化 1 ...
- 利用java反射机制实现读取excel表格中的数据
如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...
- java 读取Excel文件并数据持久化方法Demo
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...
- java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...
- Java读取Excel数据
Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 下图是excel文件的路径和文件名 下图是exce ...
- Java读取excel表格
Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建, ...
- java程序转换excel中科学记数法的数据为date类型
今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能. 但是导出后出现了一个问题,里边有一列存储时间的,存储的是lon ...
随机推荐
- BZOJ 3864
dp of dp 我就是来贴个代码 #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=(a ...
- Unity-NGUI UILabel换行
表里填写的是"\n",代码读出来会变成"\\n", 那就需要代码中将 "\\n" 重新变成 "\n" 才能够换行. st ...
- Helm 入门指南
Helm 为Kubernetes的软件包管理工具,Helm有两部分组成:Helm客户端.Tiller服务端,Helm三个主要部件:Chart.仓库.Release: Chart:为Kubernetes ...
- thinkphp 找数据库某个字段为空的数据,PHP 数据调取 空数据
$arr['dingwei'] = array('EXP','is null');
- spring MVC 的MultipartFile转File读取
转自:http://www.cnblogs.com/hahaxiaoyu/p/5102900.html 第一种方法: MultipartFile file = xxx; Commo ...
- 深入理解Spring Redis的使用 (四)、RedisTemplate执行Redis脚本
对于Redis脚本使用过的同学都知道,这个主要是为了防止竞态条件而用的.因为脚本是顺序执行的.(不用担心效率问题)比如我在工作用,用来设置考试最高分. 如果还没有用过的话,先去看Redis脚本的介绍, ...
- [Swift]LeetCode111. 二叉树的最小深度 | Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- [Swift]LeetCode161. 一次编辑距离 $ One Edit Distance
Given two strings S and T, determine if they are both one edit distance apart. 给定两个字符串S和T,确定它们是否都是是一 ...
- [Bash]LeetCode192. 统计词频 | Word Frequency
Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity ...
- [Swift]LeetCode298. 二叉树最长连续序列 $ Binary Tree Longest Consecutive Sequence
Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...