Java读取Excel文件的几种方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java读取Excel文件的几种方法
最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。
读取excel文件的常用开源免费方法有以下几种:
JDBC-ODBC Excel Driver
jxl.jar
jcom.jar
poi.jar
下面分别对这几种方法分别进行探讨
1、JDBC-ODBC Excel Driver
这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可
查询excel表格。优点是:不需要第三方的jar包。
如下表样
首先在控制面板进行数据源ODBC登记
具体方法如下:
下面就是代码了。
package xuzhe;
import java.io.*;
import java.sql.*;
//java xuzhe.ExcelJDBC
public class ExcelJDBC {
public static void main(String[] args) throws SQLException{
Connection con = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" );
Statement st = con.createStatement();
ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
System.out.println ("表格列数"+numberOfColumns );
System.out.println( rsmd.getColumnName(1)+ "," +
rsmd.getColumnName(2) + "," + rsmd.getColumnName(3));
while (rs.next()) {
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(", ");
String columnValue = rs.getString(i);
System.out.print(columnValue);
}
System.out.println("");
}
rs.close();
st.close();
}
catch(Exception ex) {
System.err.print("Exception: ");
System.err.println(ex.getMessage());
}
finally {
con.close();
}
}
}
执行结果如下:
2、jxl.jar
jxl.jar为开源代码,任何运行java虚拟机的操作系统都能使用这个jar包操作excel表格。优点是:不依赖其他任何第三方的库。下载地址:/pub/mirrors/maven2/net/sourceforge/jexcelapi/jxl/2.6.10 /jxl-2.6.10.jar
程序如下:
package xuzhe;
import java.io.File;
import jxl.Sheet;
import jxl.Workbook;
//java
-classpath .;E:\eclipse3.6.2\workspace\CrazyJava\lib\jxl.jar xuzhe.ExcelJXL
public class ExcelJXL
{
static String sourceFile = "c:\\name.xls"; // 源文件
public static void main(String[] args)
{
try
{
Workbook book = Workbook.getWorkbook(new File(sourceFile));
//0代表第一个工作表对象
Sheet sheet = book.getSheet(0);
int rows = sheet.getRows();
int cols = sheet.getColumns();
String colname1 = sheet.getCell(0, 0).getContents().trim();
String colname2 = sheet.getCell(1, 0).getContents().trim();
String colname3 = sheet.getCell(2, 0).getContents().trim();
System.out.println(colname1+","+colname2+","+colname3);
for (int z = 1; z < rows; z++)
{
//0代表列数,z代表行数
String name = sheet.getCell(0, z).getContents();
String sex = sheet.getCell(1, z).getContents();
String ID = sheet.getCell(2, z).getContents();