我最近做的一个项目是在jsp页面中将数据库中的数据到如到excel中,结合我以往的经验,我做了一个bean可以方便的实现。
package com.javaTNT.excel;
/**
* @(#)cexcel.java 1.0 04/03/16
* Title:
* Description:
* Copyright: Copyright (c) 2003
* Company:
* @author 董政利
* @version 2.0
*/
import java.io.*;
import java.sql.*;
import com.javaTNT.excel.*;
import jxl.*;
import jxl.write.*;
public class excel{
//MyExecSQL 连接数据库的类
MyExecSQL conn=null;
//构造函数
public excel(){
conn=new MyExecSQL();
}
/*========================================================
=== 函数功能:生成excel文件
=== 参 数
=== title:字段名称
=== sql: sql字符串
=== path:文件生成路径
=== 返 回 值:
=== 开 发 者:董政利
=== 开发时间:2004-03-16
=== 修改纪录:
==========================================================*/
public void createEXCEL(String[]title,String sql,String path){
int i=0;
int j=0;
ResultSet rs=null;
try {
//建立与数据库的连接
conn.MyConnectSQLSERVER("dzl","traffic");
rs=conn.execQuery(sql);
//构建Workbook对象, 只读Workbook对象
//:创建可写入的Excel工作薄
WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(path));
WritableSheet ws = wwb.createSheet("sheet1", 0);
for( i=0;i<title.length;i++){
WritableFont wf = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD, false);
WritableCellFormat wcfF = new WritableCellFormat(wf);
Label labelCF = new Label(i, 0, title[i],wcfF);
ws.addCell(labelCF);
}
i=1;
while (rs.next()) {
for(j=1;j<=title.length;j++)
{
Label labelC = new Label(j-1,i, rs.getString(j));
ws.addCell(labelC);
}
i++;
}
//写入Exel工作表
wwb.write();
//关闭Excel工作薄对象
wwb.close();
rs.close();
conn.MyDisConnect();
}
catch (Exception e) {
System.out.println(e.toString());
}
}
////测试函数
// public static void main(String args[])
// {
// String[] title={"我","的","测","试"};
// String sql="select bh,jb,mc,xh from dq order by xh ";
// excel Myexcel=new excel();
// Myexcel.createEXCEL(title,sql,"d:\\dzl.csv");
// }
}
我用的是java的一个开源项目jxl在网上可以方便的下载。
本文地址:http://com.8s8s.com/it/it16720.htm