2012-04-17 44 views
0

如果我想使用HashMap的話,我可以這樣閱讀閱讀從Oracle表中的數據.........讀取xls文件使用HashMap的

String sql = "select * from DPY_VW_REP_DELIVERY_DTLS where weighed_date between ? and ?"; 
Object[] queryParams = new Object[] {dateFrom, dateTo}; 
List rsList = this.getJdbcTemplate().queryForList(sql, queryParams); 
Iterator it = rsList.iterator(); 
while(it.hasNext()) 
{ 
    try 
    { 
     LinkedHashMap map = (LinkedHashMap) it.next(); 
     String[] strData = new String[14]; 
     strData[0] = map.get("WEIGHED_DATE_AS_CHAR").toString(); 
     strData[1] = map.get("WEIGHED_DAY_SLNO").toString(); 
     strData[2] = map.get("PARTY_NAME").toString(); 
     strData[3] = map.get("PARTY_ADDRESS1").toString(); 
     strData[4] = map.get("PARTY_ADDRESS2").toString(); 
     strData[5] = map.get("VEHICLE_NO").toString(); 
    } 
} 

,但如果我想讀一個xls文件包含使用散列映射相同的數據我怎麼能做到這一點......

回答

1

不知道你的意思是'使用散列映射'。 JdbcTemplate.queryForList返回映射到HashMap列表的結果。

使用Apache POI或類似工具可能更容易閱讀excel文件。或者,如果使用電子表格作爲數據庫,則可以使用JDBC-ODBC橋接。然後你可以執行你的SQL查詢。這個方法是example

+0

那些滿足我這個問題,但 我可以在第二個示例擴展查詢'的ResultSet RS = st.executeQuery( 「SELECT * FROM [工作表Sheet1 $]」)非常好的例子;' 到 '的ResultSet rs = st.executeQuery(「Select * from [Sheet1 $] where value [rows] [0] =='SR_NO'」);' – abhi 2012-04-17 07:03:06

+0

@abhi取決於您的文件。試試這個:'從[Sheet1 $]中選擇*,其中F1 ='SR_NO''。當標題不存在時,Excel將返回F1,F2等作爲列名稱 – tenorsax 2012-04-18 05:24:42