Java读取Excel文件的几种方法最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。读取excel文件的常用开源免费方法有以下几种:JDBC-ODBCExcelDriverjxl.jarjcom.jarpoi.jar下面分别对这几种方法分别进行探讨1、JDBC-ODBCExcelDriver这种方法是将excel看成是数据库进行操作,使用SQLSelect语句即可查询excel表格。优点是:不需要第三方的jar包。如下表样首先在控制面板进行数据源ODBC登记具体方法如下:下面就是代码了。packagexuzhe;importjava.io.*;importjava.sql.*;//javaxuzhe.ExcelJDBCpublicclassExcelJDBC{publicstaticvoidmain(String[]args)throwsSQLException{Connectioncon=null;try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:ExcelJDBC);Statementst=con.createStatement();ResultSetrs=st.executeQuery(Select*from[Sheet1$]);ResultSetMetaDatarsmd=rs.getMetaData();intnumberOfColumns=rsmd.getColumnCount();System.out.println(表格列数+numberOfColumns);System.out.println(rsmd.getColumnName(1)+,+rsmd.getColumnName(2)+,+rsmd.getColumnName(3));while(rs.next()){for(inti=1;i=numberOfColumns;i++){if(i1)System.out.print(,);StringcolumnValue=rs.getString(i);System.out.print(columnValue);}System.out.println();}rs.close();st.close();}catch(Exceptionex){System.err.print(Exception:);System.err.println(ex.getMessage());}finally{con.close();}}}执行结果如下:2、jxl.jarjxl.jar为开源代码,任何运行java虚拟机的操作系统都能使用这个jar包操作excel表格。优点是:不依赖其他任何第三方的库。下载地址:程序如下:packagexuzhe;importjava.io.File;importjxl.Sheet;importjxl.Workbook;//java-classpath.;E:\eclipse3.6.2\workspace\CrazyJava\lib\jxl.jarxuzhe.ExcelJXLpublicclassExcelJXL{staticStringsourceFile=c:\\name.xls;//源文件publicstaticvoidmain(String[]args){try{Workbookbook=Workbook.getWorkbook(newFile(sourceFile));//0代表第一个工作表对象Sheetsheet=book.getSheet(0);introws=sheet.getRows();intcols=sheet.getColumns();Stringcolname1=sheet.getCell(0,0).getContents().trim();Stringcolname2=sheet.getCell(1,0).getContents().trim();Stringcolname3=sheet.getCell(2,0).getContents().trim();System.out.println(colname1+,+colname2+,+colname3);for(intz=1;zrows;z++){//0代表列数,z代表行数Stringname=sheet.getCell(0,z).getContents();Stringsex=sheet.getCell(1,z).getContents();StringID=sheet.getCell(2,z).getContents();System.out.println(name+,+sex+,+ID);}}catch(Exceptione){e.printStackTrace();}}}执行结果如下:3、jcom.jarjcom.jar是日本人开发的,也是一个开源项目,下载地址:将jcom.jar拷贝到classlib目录下,将jcom.dll放到你的JAVA_HOME/bin目录下,否则会出现下面错误。程序如下:packagexuzhe;importjp.ne.so_net.ga2.no_ji.jcom.excel8.*;importjp.ne.so_net.ga2.no_ji.jcom.*;importjava.io.File;importjava.util.Date;publicclassExcelJCOM{publicstaticvoidmain(String[]args)throwsException{JCOMReadExcel();JCOMCreateExcel();}staticvoidJCOMReadExcel(){ReleaseManagerrm=newReleaseManager();try{System.out.println(EXCELstartup...);//ifalreadystarted,opennewwindowExcelApplicationexcel=newExcelApplication(rm);excel.Visible(true);StringFilename=c:\\name.xls;ExcelWorkbooksxlBooks=excel.Workbooks();ExcelWorkbookxlBook=xlBooks.Open(Filename);ExcelWorksheetsxlSheets=xlBook.Worksheets();//第一个工作表ExcelWorksheetxlSheet=xlSheets.Item(1);ExcelRangexlRange=xlSheet.Cells();inti;intj;for(j=1;j=4;j++){for(i=1;i=3;i++){System.out.print(xlRange.Item(j,i).Value());if(i3){System.out.print(,);}}System.out.println();}}catch(Exceptione){e.printStackTrace();}finally{rm.release();}}staticvoidJCOMCreateExcel(){ReleaseManagerrm=newReleaseManager();try{System.out.println(EXCELstartup...);//ifalreadystarted,opennewwindowExcelApplicationexcel=newExcelApplication(rm);excel.Visible(true);//displayanyinformationSystem.out.println(Version=+excel.Version());System.out.println(UserName=+excel.UserName());System.out.println(Caption=+excel.Caption());System.out.println(Value=+excel.Value());ExcelWorkbooksxlBooks=excel.Workbooks();ExcelWorkbookxlBook=xlBooks.Add();//createnewbook//enumurateallfilesSystem.out.println(setinfomationoffilesincurrentdirectorytocell...);ExcelWorksheetsxlSheets=xlBook.Worksheets();ExcelWorksheetxlSheet=xlSheets.Item(1);ExcelRangexlRange=xlSheet.Cells();xlRange.Item(1,1).Value(filename);xlRange.Item(2,1).Value(size);xlRange.Item(3,1).Value(lastmodifiedtime);xlRange.Item(4,1).Value(isdirectory);xlRange.Item(5,1).Value(isfile);xlRange.Item(6,1).Value(canread);xlRange.Item(7,1).Value(canwrite);Filepath=newFile(./);String[]filenames=path.list();for(inti=0;ifilenames.length;i++){Filefile=newFile(filenames[i]);System.out.println(file);xlRange.Item(1,i+2).Value(file.getName());xlRange.Item(2,i+2).Value((int)file.length());xlRange.Item(3,i+2).Value(newDate(file.lastModified()));xlRange.Item(4,i+2).Value(file.isDirectory()?Yes:No);xlRange.Item(5,i+2).Value(file.isFile()?Yes:No);xlRange.Item(6,i+2).Value(file.canRead()?Yes:No);xlRange.Item(7,i+2).Value(file.canWrite()?Yes:No);}charstart='B';charend=(char)((byte)start+filenames.length-1);System.out.println(end=[+end+]);Stringexpression==Sum(B2:+String.valueOf(end)+2);System.out.println(expression=[+expression+]);System.out.println(embedequation,calculatesumoffilesize:+expression);xlRange.Item(1,filenames.lengt