1.jdbc_odbc 方式:
import java.sql.*;
public class read {
String dbName = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:test";
Connection con;
Statement stmt;
ResultSet rs; public read() { try {
Class.forName(dbName);
/**建立数据库连接*/ }catch(ClassNotFoundException e){
System.out.print("加载数据库驱动程序错误:"); }
try{
con = DriverManager.getConnection(url,"","");
stmt=con.createStatement();
String sql="select * from [Sheet1$]";
rs=stmt.executeQuery(sql); while(rs.next()){
System.out.println(rs.getString(1)+
" "+ rs.getString(2)+" "+
rs.getString(3));
}
}catch(Exception e1){ System.out.println(e1.toString());
}finally {
try{
rs.close();
stmt.close();
con.close();
rs=null;
stmt=null;
con=null;
}
catch(Exception e){}
} }
public static void main(String[] args) {
read read1 = new read();
}
}
2.apache 方式:
import java.io.IOException;
import java.io.InputStream; import java.util.Iterator; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
/**
* A simple POI example of opening an Excel spreadsheet
* and writing its contents to the command line.
* @author Tony Sintes
*/
public class POIExample { public static void main( String [] args ) {
try {
InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
POIFSFileSystem fs = new POIFSFileSystem( input );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
// Iterate over each row in the sheet
Iterator rows = sheet.rowIterator();
for( HSSFRow row = (HSSFRow) rows.next(); rows.hasNext(); row = (HSSFRow) rows.next() ) {
System.out.println( "Row #" + row.getRowNum() ); // Iterate over each cell in the row and print out the cell's content
Iterator cells = row.cellIterator();
for( HSSFCell cell = (HSSFCell) cells.next(); cells.hasNext(); cell = (HSSFCell) cells.next() ) { System.out.println( "Cell #" + cell.getCellNum() );
switch ( cell.getCellType() ) {
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println( cell.getNumericCellValue() );
break;
case HSSFCell.CELL_TYPE_STRING:
System.out.println( cell.getStringCellValue() );
break;
default:
System.out.println( "unsuported sell type" );
break;
}
}
}
} catch ( IOException ex ) {
ex.printStackTrace();
}
}
3.java_com 方式:
package excelcom;
import com.jacob.com.*;
import com.jacob.activeX.*;
public class DispatchTest
{
public static void main(String[] args)
{
ActiveXComponent xl = new ActiveXComponent("Excel.Application");
Object xlo = xl.getObject();
try {
System.out.println("version="+xl.getProperty("Version"));
System.out.println("version="+Dispatch.get(xlo, "Version"));
xl.setProperty("Visible", new Variant(true));
Object workbooks = xl.getProperty("Workbooks").toDispatch();
Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A1"},
new int[1]).toDispatch();
Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A2"},
new int[1]).toDispatch();
Dispatch.put(a1, "Value", "123.456");
Dispatch.put(a2, "Formula", "=A1*2");
System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
Variant f = new Variant(false);
Dispatch.call(workbook, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
} 各自有缺点和优点,还有技术难点.
例如:第一种方式: 不能显示字符:
1234567
2322222
3dfgdg8886789
-----------------------------------------------------------
1234567
2322222
3null8886789 不知那位对此有研究,贴一点心得吧.
我看了MS的方案很简单的:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim myDataset As New DataSet() Dim strConn As String
= "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Replace
(Server.MapPath("."), "\", "\\") & "\\exceltest.xls;" & _
"Extended Properties=""Excel 8.0;"""
'You must use the $ after the object you reference in
the spreadsheet
Dim myOleDbDataAdapter As New OleDbDataAdapter("SELECT
* FROM [Sheet1$]", strConn)
myOleDbDataAdapter.Fill(myDataset)
DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind()
End Sub
</script>
</html> --
import java.sql.*;
public class read {
String dbName = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:test";
Connection con;
Statement stmt;
ResultSet rs; public read() { try {
Class.forName(dbName);
/**建立数据库连接*/ }catch(ClassNotFoundException e){
System.out.print("加载数据库驱动程序错误:"); }
try{
con = DriverManager.getConnection(url,"","");
stmt=con.createStatement();
String sql="select * from [Sheet1$]";
rs=stmt.executeQuery(sql); while(rs.next()){
System.out.println(rs.getString(1)+
" "+ rs.getString(2)+" "+
rs.getString(3));
}
}catch(Exception e1){ System.out.println(e1.toString());
}finally {
try{
rs.close();
stmt.close();
con.close();
rs=null;
stmt=null;
con=null;
}
catch(Exception e){}
} }
public static void main(String[] args) {
read read1 = new read();
}
}
2.apache 方式:
import java.io.IOException;
import java.io.InputStream; import java.util.Iterator; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
/**
* A simple POI example of opening an Excel spreadsheet
* and writing its contents to the command line.
* @author Tony Sintes
*/
public class POIExample { public static void main( String [] args ) {
try {
InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
POIFSFileSystem fs = new POIFSFileSystem( input );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
// Iterate over each row in the sheet
Iterator rows = sheet.rowIterator();
for( HSSFRow row = (HSSFRow) rows.next(); rows.hasNext(); row = (HSSFRow) rows.next() ) {
System.out.println( "Row #" + row.getRowNum() ); // Iterate over each cell in the row and print out the cell's content
Iterator cells = row.cellIterator();
for( HSSFCell cell = (HSSFCell) cells.next(); cells.hasNext(); cell = (HSSFCell) cells.next() ) { System.out.println( "Cell #" + cell.getCellNum() );
switch ( cell.getCellType() ) {
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println( cell.getNumericCellValue() );
break;
case HSSFCell.CELL_TYPE_STRING:
System.out.println( cell.getStringCellValue() );
break;
default:
System.out.println( "unsuported sell type" );
break;
}
}
}
} catch ( IOException ex ) {
ex.printStackTrace();
}
}
3.java_com 方式:
package excelcom;
import com.jacob.com.*;
import com.jacob.activeX.*;
public class DispatchTest
{
public static void main(String[] args)
{
ActiveXComponent xl = new ActiveXComponent("Excel.Application");
Object xlo = xl.getObject();
try {
System.out.println("version="+xl.getProperty("Version"));
System.out.println("version="+Dispatch.get(xlo, "Version"));
xl.setProperty("Visible", new Variant(true));
Object workbooks = xl.getProperty("Workbooks").toDispatch();
Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A1"},
new int[1]).toDispatch();
Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A2"},
new int[1]).toDispatch();
Dispatch.put(a1, "Value", "123.456");
Dispatch.put(a2, "Formula", "=A1*2");
System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
Variant f = new Variant(false);
Dispatch.call(workbook, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
} 各自有缺点和优点,还有技术难点.
例如:第一种方式: 不能显示字符:
1234567
2322222
3dfgdg8886789
-----------------------------------------------------------
1234567
2322222
3null8886789 不知那位对此有研究,贴一点心得吧.
我看了MS的方案很简单的:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim myDataset As New DataSet() Dim strConn As String
= "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Replace
(Server.MapPath("."), "\", "\\") & "\\exceltest.xls;" & _
"Extended Properties=""Excel 8.0;"""
'You must use the $ after the object you reference in
the spreadsheet
Dim myOleDbDataAdapter As New OleDbDataAdapter("SELECT
* FROM [Sheet1$]", strConn)
myOleDbDataAdapter.Fill(myDataset)
DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind()
End Sub
</script>
</html> --
解决方案 »
- jsp实现下载功能弹出的文件保存框时,文件名不是设置的默认名、文件类型未知?速求正解
- 小弟有一事求教,关于sitemesh中web.xml的filter配置问题
- dom4j 如何得到一个节点下面的所有子节点内容
- osworkflow2.8.0自带的例子osworkflow2.8.0-example如何部署到Oracle Application Server 10g中去
- 最后10分了,有谁用过Google Web Tookit,给讲一讲优点和缺点吧!
- 谁能给一个MyEclipse4.1下hibernate3存数据库,取数据库(mysql)的例子啊
- 如何把servlet中读取的txt文件内容显示到jsp页面上?
- jtds为何调用失败
- 想问问哪里有简易FTP服务器端和客户端的JAVA源码下载呢?
- 求救:关于CMP EntityBean中的删除记录问题?
- 哪个兄弟,能给我发一个DAO和TO的例子。
- (求助)Tomcat配置连接池问题?迷惑~~(在线等)
import java.sql.*;
public class read {
String dbName = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:test";
Connection con;
Statement stmt;
ResultSet rs; public read() { try {
Class.forName(dbName);
/**建立数据库连接*/ }catch(ClassNotFoundException e){
System.out.print("加载数据库驱动程序错误:"); }
try{
con = DriverManager.getConnection(url,"","");
stmt=con.createStatement();
String sql="select * from [Sheet1$]";
rs=stmt.executeQuery(sql); while(rs.next()){
System.out.println(rs.getString(1)+
" "+ rs.getString(2)+" "+
rs.getString(3));
}
}catch(Exception e1){ System.out.println(e1.toString());
}finally {
try{
rs.close();
stmt.close();
con.close();
rs=null;
stmt=null;
con=null;
}
catch(Exception e){}
} }
public static void main(String[] args) {
read read1 = new read();
}
}
2.apache 方式:
import java.io.IOException;
import java.io.InputStream; import java.util.Iterator; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
/**
* A simple POI example of opening an Excel spreadsheet
* and writing its contents to the command line.
* @author Tony Sintes
*/
public class POIExample { public static void main( String [] args ) {
try {
InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
POIFSFileSystem fs = new POIFSFileSystem( input );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
// Iterate over each row in the sheet
Iterator rows = sheet.rowIterator();
for( HSSFRow row = (HSSFRow) rows.next(); rows.hasNext(); row = (HSSFRow) rows.next() ) {
System.out.println( "Row #" + row.getRowNum() ); // Iterate over each cell in the row and print out the cell's content
Iterator cells = row.cellIterator();
for( HSSFCell cell = (HSSFCell) cells.next(); cells.hasNext(); cell = (HSSFCell) cells.next() ) { System.out.println( "Cell #" + cell.getCellNum() );
switch ( cell.getCellType() ) {
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println( cell.getNumericCellValue() );
break;
case HSSFCell.CELL_TYPE_STRING:
System.out.println( cell.getStringCellValue() );
break;
default:
System.out.println( "unsuported sell type" );
break;
}
}
}
} catch ( IOException ex ) {
ex.printStackTrace();
}
}
3.java_com 方式:
package excelcom;
import com.jacob.com.*;
import com.jacob.activeX.*;
public class DispatchTest
{
public static void main(String[] args)
{
ActiveXComponent xl = new ActiveXComponent("Excel.Application");
Object xlo = xl.getObject();
try {
System.out.println("version="+xl.getProperty("Version"));
System.out.println("version="+Dispatch.get(xlo, "Version"));
xl.setProperty("Visible", new Variant(true));
Object workbooks = xl.getProperty("Workbooks").toDispatch();
Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A1"},
new int[1]).toDispatch();
Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[] {"A2"},
new int[1]).toDispatch();
Dispatch.put(a1, "Value", "123.456");
Dispatch.put(a2, "Formula", "=A1*2");
System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
Variant f = new Variant(false);
Dispatch.call(workbook, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
} 各自有缺点和优点,还有技术难点.
例如:第一种方式: 不能显示字符:
1234567
2322222
3dfgdg8886789
-----------------------------------------------------------
1234567
2322222
3null8886789 不知那位对此有研究,贴一点心得吧.
我看了MS的方案很简单的:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim myDataset As New DataSet() Dim strConn As String
= "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Replace
(Server.MapPath("."), "\", "\\") & "\\exceltest.xls;" & _
"Extended Properties=""Excel 8.0;"""
'You must use the $ after the object you reference in
the spreadsheet
Dim myOleDbDataAdapter As New OleDbDataAdapter("SELECT
* FROM [Sheet1$]", strConn)
myOleDbDataAdapter.Fill(myDataset)
DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind()
End Sub
</script>
</html> --