我最近做的一个项目是在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在网上可以方便的下载。 
|