首先连接数据库。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表单是空的。希望达人能帮我解答

解决方案 »

  1.   

    貌似没什么问题,labelC = new Label(i,j,db.getRs().getString(i+1));
    调试这里面 “db.getRs().getString(i+1)” 有数据吗
      

  2.   

    JXL的代码应该没啥问题。
    问题应该在sql相关代码中。
      

  3.   


    调试后返回错误:
    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]
      

  4.   

    dbcon 
    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
        }
    删掉
    我试了 好使
      

  5.   

    看这个:
    http://topic.csdn.net/u/20100330/11/2c1818e2-7044-41e3-b89b-700dc9b89665.html?seed=93495102&r=64295645#r_64295645