這篇文章主要介紹“如何使用Java讀取Excel文件內(nèi)容”,在日常操作中,相信很多人在如何使用Java讀取Excel文件內(nèi)容問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何使用Java讀取Excel文件內(nèi)容”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)做網(wǎng)站、成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
問(wèn)題:我能用Java讀取一個(gè)Excel文件嗎?如果能,怎么做?
回答:是的,可以用Java讀取Microsoft Excel文件。微軟提供了一個(gè)Excel的ODBC驅(qū)動(dòng)程序,因此我們就可以使用JDBC和Sun的JDBC-ODBC驅(qū)動(dòng)來(lái)讀取Excel文件了。
如果你有個(gè)Excel文件,名為Book1.xls(譯者注:由于原文的例子我沒(méi)有下載下來(lái),所以我用了自己的例子),并且,該文件中有一個(gè)工作表(sheet)名為Sheet1,微軟的ODBC驅(qū)動(dòng)程序把工作表中的第一行作為列名(譯者注:即字段名),工作表名作為數(shù)據(jù)庫(kù)表名。 要通過(guò)JDBC訪問(wèn)工作表,我們還必須創(chuàng)建一個(gè)新的ODBC數(shù)據(jù)源,在Windows 2000系統(tǒng)上創(chuàng)建數(shù)據(jù)源的過(guò)程如下:
進(jìn)入“控制面板 “管理工具 “數(shù)據(jù)源(ODBC),(譯者注:打開(kāi)后選擇系統(tǒng)DSN),點(diǎn)擊添加,在彈出窗口中選擇“Driver do Microsoft Excel(*.xls)
然后在數(shù)據(jù)源名處輸入你一個(gè)名字Book1(譯者注:相當(dāng)于數(shù)據(jù)庫(kù)名),然后點(diǎn)擊“選擇工作簿,然后找到并選取你的Excel文件
點(diǎn)擊確定后,系統(tǒng)數(shù)據(jù)源列表中會(huì)出現(xiàn)你設(shè)置的數(shù)據(jù)源名稱,現(xiàn)在數(shù)據(jù)表已經(jīng)在數(shù)據(jù)源列表里了(譯者注:點(diǎn)擊確定完成配置)。
(譯者注:我的例子中)現(xiàn)在如果我們想挑出test1列中的所有“測(cè)試值,那就需要用以下的SQL查詢:
SELECT test1 FROM [Sheet1$] WHERE test1='測(cè)試'
要注意的是工作表名后面跟了一個(gè)“$符號(hào),這個(gè)符號(hào)是不可缺少的。為什么?因?yàn)樗那昂笥蟹嚼ㄌ?hào),因?yàn)椤?是SQL語(yǔ)句中的保留字。
下面是例子程序:
import java.sql.Connection; |
在此程序中,主函數(shù)main() 建立了一個(gè)數(shù)據(jù)表的連接,并取出符合條件的記錄。
(譯者注:另外,我這里還有一段程序,是讀取所有記錄的程序,僅作參考):
import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.DriverManager; public class ExcelReader { public static void main(String[] args){ Connection connection = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection( "jdbc:odbc:Book1","","" ); Statement st = con.createStatement(); ResultSet rs = st.executeQuery( "SELECT * FROM [Sheet1$]" ); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); while (rs.next()) { for (int i = 1; i <= numberOfColumns; i++) { if(i>1) //用逗號(hào)分隔各列 System.out.print(", "); String columnValue = rs.getString(i); System.out.print(columnValue); } System.out.println(""); } st.close(); con.close(); } catch(Exception ex) { System.err.print("Exception: "); System.err.println(ex.getMessage()); } } } |
到此,關(guān)于“如何使用Java讀取Excel文件內(nèi)容”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!