返回目录:excel表格制作
在Java中读取Excel文件的内容
在这里,我使用的是一个叫Java Excel API的东西,类似的还有jakarta的POI,不过感觉那个
太复杂了点儿。而且jxl对中文的支持相当的好,至少我在用的过程中一点问题没出。
一、下载地址
http:///jexcelapi/
二、特性
可以读取Excel 95, 97, 2000文件
可以读或写Excel 97及其以后版本的的公式(不过我发现好像有bug)
生成Excel 97格式的电子表格
支持字体、数字和日期格式化
支持单元格的颜色和阴影
可以编辑现有的文件
三、读文件
//声明一下,记得后面要关闭哦。。
Workbook workbook = null;
try {
workbook = Workbook.getWorkbook(new File("d:\\temp\\TestRead.xls"));
} catch (Exception e) {
throw new Exception("file to import not found!");
}
Sheet sheet = workbook.getSheet(0);
Cell cell = null;
int columnCount=3;
int rowCount=sheet.getRows();
for (int i = 0; i<rowcount; p="" {
for (int j = 0; j<columncount; p="" {
//注意,这里的两个参数,第一个是表示列的,第二才表示行
cell=sheet.getCell(j, i);
//要根据单元格的类型分别做处理,否则格式化过的7a64e78988e69d83363内容可能会不正确
if(cell.getType()==CellType.NUMBER){
System.out.print(((NumberCell)cell).getValue());
}
else if(cell.getType()==CellType.DATE){
System.out.print(((DateCell)cell).getDate());
}
else{
System.out.print(cell.getContents());
}
//System.out.print(cell.getContents());
System.out.print("\t");
}
System.out.print("\n");
}
//关闭它,否则会有内存泄露
workbook.close();
下面是读取一个EXCEL文件并将其写入数据库e799bee5baa6e997aee7ad94e59b9ee7ad94338的代码实例,亲测通过:
注意:EXCEL里面的列名称要和数据库里的字段相同
<%
i=0
Dim cn,oConn,connstr
'打开XLS.
Set cn = Server.CreateObject("ADODB.Connection")
cn.Provider = "Microsoft.Jet.OLEDB.4.0 "
cn.ConnectionString = "Data Source=" & Server.MapPath("list.xls") & ";" & _
"Extended Properties=Excel 8.0;"
cn.Open
'打开MDB.
connstr="DBQ="+server.MapPath("TEST.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set oConn=server.CreateObject("ADODB.CONNECTION")
oConn.open connstr
'读取数据.
set rsRead=server.CreateObject("ADODB.Recordset")
rsRead.Open "select * from [list$]",cn,1,1
do until rsRead.EOF
'写入数据库.
oConn.Execute("Insert into eer(mc)Values('"& rsRead.Fields("mc") & "')" )
rsRead.MoveNext
i=i+1
loop
response.write("<p align=center>成功导入"&i&"条数据</p>")
response.Write("<p align=center><a href=javascript:window.close()>关闭窗口</a></p>")
%>
两种方法1.拿execl当做数据库来读取2.可以把excel另存为网copy页文件,就可以当做文本文件处理百了,里面代码可以找到处理规律。附上处理excel文档的asp代码(就是第一条的方法)度setconn2=CreateObject("ADODB.Connection")conn2.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extendedproperties=Excel5.0;DataSource="&file_path&""sql="select*FROM[student$]"setrs=conn2.execute(sql)dowhilenotrs.eofsql="insertintostudent([student_name],[student_nick],[student_password])values('"&fixsql(rs(0))&"','"&fixsql(rs(3))&"','"&fixsql(rs(8))&"')"conn.execute(sql)rs.movenextloopconn2.close
<%
set xlApp = server.CreateObject("Excel.Application")
strsource = server.MapPath("xl.xls")
set xlbook = xlApp.WorkBooks.Open(strsource)
set xlsheet = xlbook.Worksheets(1)
i = 1
response.write "<table>"
while xlsheet.cells(i,1) <> ""
response.write "<tr>"
response.write "<td>" & xlsheet.Cells(i,1) & "</td>"
response.write "<td>" & xlsheet.Cells(i,2) & "</td>"
response.write "<td>" & xlsheet.Cells(i,3) & "</td>"
response.write "<tr>"
i = i + 1
wend
response.write "</table>"
set xlsheet = nothing
set xlbook = nothing
xlApp.quit
'千万记住要加这一句,否则每运行一次你的机器里就增加一个Excel进程,而且无法释放
'set xlApp = nothing 是不行e799bee5baa6e79fa5e98193e78988e69d83334的
%>