以下代码我没有真正去实践,紧做为总结,方便以后查阅:

这种方法需要设置ODBC源.....

参考:

http://xytang.blogspot.com/2008/02/how-to-connect-to-excel-spreadsheet.html

http://www.devx.com/Java/Article/17848

http://www.java2s.com/Tutorial/Java/0340__Database/UseJDBCODBCbridgetoreadfromExcel.htm

附代码:

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element; /**
* 这种读取Excel的方式应该配配置ODBC数据源.
* @author CDV-DX7
*
*/
public class ExcelUtil {
private String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
private String dataSourceUrl = "jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ="; // 不设置数据源 public ExcelUtil(){} public void setDriverName(String driverName){
this.driverName = driverName;
} /**
* 从excel中获取数据,转化为XML
* @param excelUrl
* @param sheetName
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public Document getExcelData(String excelUrl, String sheetName)
throws ClassNotFoundException, SQLException {
Connection dbConn = null;
try {
Class.forName(this.driverName);
excelUrl = this.dataSourceUrl + excelUrl;
dbConn = DriverManager.getConnection(excelUrl, "", "");
Statement smt = dbConn.createStatement();
ResultSet rs = smt.executeQuery("select * from [" + sheetName + "$]");
Document doc = DocumentHelper.createDocument();
Element elmRoot = doc.addElement("Tab");
while (rs.next()) {
Element elmRow = elmRoot.addElement("Row"); int colNum = rs.getMetaData().getColumnCount();
for (int i = 1; i <= colNum; i++) {
Element elmCol = elmRow.addElement("Col");
elmCol.setText(rs.getString(i));
}
} return doc;
} finally {
dbConn.close();
}
} public static void main(String[] args) {
try{
//使用方法示例
String excelUrl = "C:\\Users\\CDV-DX7\\Desktop\\节目信息输入数据.xls";
String sheetName = "节目列表";
ExcelUtil excelutil = new ExcelUtil();
excelutil.getExcelData(excelUrl,sheetName);
}catch (Exception e){
e.printStackTrace();
System.out.println("出错啦:"+e.getMessage());
}
}
}

使用JDBC-ODBC读取Excel文件的更多相关文章

  1. java无依赖读取Excel文件

    说到Java读取Excel文件,用得多的当然是POI或jxls,但今天在看一本书的时候.当中提到使用JdbcOdbcDriver这个驱动类在不依赖第三方库的情况下也能够完毕对Excel文件的读取操作, ...

  2. .Net读取Excel文件时丢失数据的问题 (转载)

    相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...

  3. C# 读取EXCEL文件的三种经典方法

    1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...

  4. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  5. ADO.NET 读取Excel文件,并作数据源

    项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...

  6. PHPExcel读取Excel文件的实现代码

    <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...

  7. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  8. C# 读取Excel文件里面的内容到DataSet

    摘要:读取Excel文件里面的内容到DataSet 代码: /// <summary> /// 读取Excel文件里面的内容到DataSet /// </summary> // ...

  9. R语言读取excel文件的3种方法

    R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为                ...

  10. C#读取Excel文件:通过OleDb连接,把excel文件作为数据源来读取

    转载于:http://developer.51cto.com/art/200908/142392.htm C#读取Excel文件可以通过直接读取和OleDb连接,把excel文件作为数据源来读取:   ...

随机推荐

  1. Win7 x64下进程保护与文件保护(ObRegisterCallbacks)

    进程保护部分参考 http://bbs.pediy.com/showthread.php?t=168023 进程保护,在任务管理器不能结束进程 #ifndef CXX_PROTECTPROCESSX6 ...

  2. 关于以DataTable形式批量写入数据的案例

    void IDataAccess.CommandDataTable(DataTable dt, string ProcedureName, System.Data.Common.DbParameter ...

  3. CMSIS Example - Signal

    /*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...

  4. RFIDler - An open source Software Defined RFID Reader/Writer/Emulator

    https://www.kickstarter.com/projects/1708444109/rfidler-a-software-defined-rfid-reader-writer-emul h ...

  5. MON166 User's Guide

    MON166 is a debug monitor for C16x and ST10 user programs. It consists of: A configurable monitor pr ...

  6. C++ 方法隐藏

    1.过载:一个类中,方法名相同,形参表不同的方法. 2.重写:子类与父类的virtual方法,方法名,形参表相同. 3.考虑下面的情况,子类与父类方法名相同. 父类是virtual方法         ...

  7. EasyUI-Tab 标签添加右键菜单

    在网上看了很多demo 自己实现了一个效果如下 <!doctype html> <html> <head> <meta http-equiv="co ...

  8. 【JavaScript】JavaScript回调函数

    什么是Javascript 回调函数? 函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中. 这个函数就是所谓的回调函数   举例: //不带参数的case fun ...

  9. careercup-高等难度 18.2

    18.2 编写一个方法,洗一副牌.要求做到完美洗牌,换言之,这幅牌52!种排列组合出现的概率相同.假设给定一个完美的随机发生器. 解法:假定有个数组,含有n个元素,类似如下: [1][2][3][4] ...

  10. 堆排序-C语言实现

    堆排序 堆排序是利用堆的性质进行的一种选择排序.下面先讨论一下堆. 1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i ...