sql查询来selectexcel中的特定单元格

Open_YYYY Open_MM MetricMonth BaseTXN_Issued AllTXN_Issued 2013 4 Apr-2013 24990 42179 2013 5 May-2013 37049 58037 2013 6 Jun-2013 33491 54869 2013 7 Jul-2013 34359 62047 

我有一个Excel文件中的上述信息,我想select并输出2013年7月AllTXN_Issued的值作为上个月的交易总额。 使用jdbc-odbc连接连接Excel电子表格后,如何在Java中执行此操作?

试试这个,它适用于所有的平台。

 Fillo fillo=new Fillo(); Connection connection=fillo.getConnection("C:\\Test.xlsx"); String strQuery="Select * from Sheet1 where ID=100"; Recordset recordset=connection.executeQuery(strQuery); while(recordset.next()){ System.out.println(recordset.getField("Details")); } recordset.close(); connection.close(); 

http://www.codoid.com/products/view/2/29

以下代码适用于我。 它假定Excel中的[MetricMonth]列包含文本值(而不是格式为MMM-yyyy的真实date),但它至less应该给出一般的想法。

 import java.sql.*; public class jdbcTest { public static void main(String[] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" + "Dbq=C:\\__tmp\\Book1.xlsx;"); PreparedStatement s = conn.prepareStatement( "SELECT * FROM [Sheet1$] WHERE [MetricMonth] = ?"); s.setString(1, "Jul-2013"); s.execute(); ResultSet rs = s.getResultSet(); if (rs!=null) { while (rs.next()) { System.out.println(rs.getInt("AllTXN_Issued")); } } s.close(); conn.close(); } catch( Exception e ) { e.printStackTrace(); } } }