首先连接数据库。package jxl;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;public class dbcon {
private ResultSet rs;
private int numColumns;
public dbcon(String sql){
try{
//驱动程序名
@SuppressWarnings("unused")
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库用户名
String userName = "sa";
//数据库密码
String userPasswd = "";
//数据库名
String dbName = "SYNH";
String url="jdbc:sqlserver://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection connection = DriverManager.getConnection(url);
Statement statement = connection.createStatement();
rs = statement.executeQuery(sql);
//获得数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();
numColumns = rmeta.getColumnCount();
}catch(Exception e){
System.out.println(e);
}
}
public void setRs(ResultSet rs){
this.rs=rs;
}
public ResultSet getRs(){
return rs;
}
public void setNumColumns(int numColumns){
this.numColumns=numColumns;
}
public int getNumColumns(){
return numColumns;
}}然后将网页的表单写入excel
package jxl;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class WriteExcel {
public WriteExcel(OutputStream os,String sql) throws Exception {
dbcon db = new dbcon(sql);
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("Sheet1",0);
int j=0;
Label labelC;
while(db.getRs().next()){
for(int i=0;i<=db.getNumColumns()-1;i++){
labelC = new Label(i,j,db.getRs().getString(i+1));
ws.addCell(labelC);
}
j++;
}
wwb.write();
wwb.close();
}public WriteExcel(FileOutputStream fileOutputStream, String sql) {
// TODO Auto-generated constructor stub
}public static void main(String[] args)throws Exception{
File f = new File("d:/abcd.xls");
f.createNewFile();
new WriteExcel(new FileOutputStream(f),"select * from bank ");
}
}编译通过了,但是我出来的excel表单是空的。希望达人能帮我解答
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;public class dbcon {
private ResultSet rs;
private int numColumns;
public dbcon(String sql){
try{
//驱动程序名
@SuppressWarnings("unused")
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库用户名
String userName = "sa";
//数据库密码
String userPasswd = "";
//数据库名
String dbName = "SYNH";
String url="jdbc:sqlserver://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection connection = DriverManager.getConnection(url);
Statement statement = connection.createStatement();
rs = statement.executeQuery(sql);
//获得数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();
numColumns = rmeta.getColumnCount();
}catch(Exception e){
System.out.println(e);
}
}
public void setRs(ResultSet rs){
this.rs=rs;
}
public ResultSet getRs(){
return rs;
}
public void setNumColumns(int numColumns){
this.numColumns=numColumns;
}
public int getNumColumns(){
return numColumns;
}}然后将网页的表单写入excel
package jxl;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class WriteExcel {
public WriteExcel(OutputStream os,String sql) throws Exception {
dbcon db = new dbcon(sql);
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("Sheet1",0);
int j=0;
Label labelC;
while(db.getRs().next()){
for(int i=0;i<=db.getNumColumns()-1;i++){
labelC = new Label(i,j,db.getRs().getString(i+1));
ws.addCell(labelC);
}
j++;
}
wwb.write();
wwb.close();
}public WriteExcel(FileOutputStream fileOutputStream, String sql) {
// TODO Auto-generated constructor stub
}public static void main(String[] args)throws Exception{
File f = new File("d:/abcd.xls");
f.createNewFile();
new WriteExcel(new FileOutputStream(f),"select * from bank ");
}
}编译通过了,但是我出来的excel表单是空的。希望达人能帮我解答
调试这里面 “db.getRs().getString(i+1)” 有数据吗
问题应该在sql相关代码中。
调试后返回错误:
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName="+dbName;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection connection = DriverManager.getConnection(url, userName, userPasswd);WriteExcel中
public WriteExcel(FileOutputStream fileOutputStream, String sql) {
// TODO Auto-generated constructor stub
}
删掉
我试了 好使
http://topic.csdn.net/u/20100330/11/2c1818e2-7044-41e3-b89b-700dc9b89665.html?seed=93495102&r=64295645#r_64295645