Java读取Excel文件的几种方法
最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。
读取excel文件的常用开源免费方法有以下几种:
JDBC-ODBC Excel Driver
下面分别对这几种方法分别进行探讨
1、 JDBC-ODBC Excel Driver
这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可查询excel表格。优点是:不需要第三方的jar包。
如下表样
首先在控制面板进行数据源ODBC登记
具体方法如下:
下面就是代码了。
package xuzhe;
import .*;
import .*;
2.6.10E:\\ecli
pse3.6.2\\workspace\\CrazyJava\\lib\\
public class ExcelJXL
{
static String sourceFile = \"c:\\\\\"; etContents().trim();
String colname2 = (1, 0).getContents().trim();
String colname3 = (2, 0).getContents().trim();
\
for (int z = 1; z < rows; z++)
{
etContents();
String sex = (1, z).getContents();
String ID = (2, z).getContents();
\
}
}
catch(Exception e)
{
();
}
}
}
执行结果如下:
2、 是日本人开发的,也是一个开源项目,下载地址:projects/jcom/files/latest/download
将拷贝到classlib目录下,将放到你的JAVA_HOME/bin目录下,否则会出现下面错误。
程序如下:
package xuzhe;
import class ExcelJCOM {
public static void main(String[] args) throws Exception {
JCOMReadExcel(); JCOMCreateExcel();
}
static void JCOMReadExcel()
{
ReleaseManager rm = new ReleaseManager();
try
{
\"EXCEL startup...\");
.\");
.\");
ExcelWorksheets xlSheets = ();
ExcelWorksheet xlSheet = (1);
ExcelRange xlRange = ();
(1,1).Value(\"filename\" );
(2,1).Value(\"size\" );
(3,1).Value(\"last modified time\");
(4,1).Value(\"is directory\");
(5,1).Value(\"is file\");
(6,1).Value(\"can read\");
(7,1).Value(\"can write\");
File path = new File(\"./\");
String[] filenames = ();
for(int i=0; i<; i++) {
File file = new File(filenames[i]);
(1,i+2).Value( () );
(2,i+2).Value( (int)() );
(3,i+2).Value( new Date()) );
(4,i+2).Value( ()\"Yes\":\"No\" );
(5,i+2).Value( ()\"Yes\":\"No\" );
(6,i+2).Value( ()\"Yes\":\"No\" );
(7,i+2).Value( ()\"Yes\":\"No\" );
}
char start = 'B';
char end = (char)((byte)start + - 1);
\"end=[\" + end + \"]\");
String expression = \"=Sum(B2:\" + (end) + \"2)\";
\"expression=[\" + expression + \"]\");
(\"embed equation, calculate sum of filesize: \"+expression);
(1,+2).Value(\"sum\");
(2,+2).Formula(expression);
().AutoFit(); .\");
. (My Documents)\\\\\");
(\"\");
(false,null,false);
();
\"thank you .\");
}
catch(Exception e) { (); }
finally { (); }
}
}
执行结果如下:
3、 是apache旗下的一个开源项目,下载地址:
程序如下:
package xuzhe;
import class ExcelPOI {
/**
* @param args
* @throws IOException
* java
*/
@SuppressWarnings(\"deprecation\")
public static void main(String[] args) throws IOException {
etCellValue(\"HelloWorld\");
FileOutputStream fileOut = new FileOutputStream(\"c:\\\\\");
(fileOut);
();
}
private static HSSFWorkbook readFile(String filename) throws IOException {
return new HSSFWorkbook(new FileInputStream(filename));
}
public static void POIReadExcel() throws IOException
{
String fileName = \"c:\\\\\";
HSSFWorkbook wb = (fileName);
\"Data dump:\\n\");
for (int k = 0; k < (); k++)
{
HSSFSheet sheet = (k);
int rows = ();
\"Sheet \" + k + \" \\\"\" + (k) + \"\\\" has \" + rows
+ \" row(s).\");
for (int r = 0; r < rows; r++)
{
HSSFRow row = (r);
if (row == null) {
continue;
}
int cells = ();
\"\\nROW \" + () + \" has \" + cells
+ \" cell(s).\");
for (int c = 0; c < cells; c++)
{
HSSFCell cell = (c);
String value = null;
switch ())
{
case :
value = \"FORMULA value=\" + ();
break;
case :
value = \"NUMERIC value=\" + ();
break;
case :
value = \"STRING value=\" + ();
break;
default:
}
\"CELL col=\" + () + \" VALUE=\"
+ value);
}
}
}
}
}
执行结果如下:
以上就是我的一点心得体会,有误的地方请指正,来信发。
因篇幅问题不能全部显示,请点此查看更多更全内容