Java操作Excel首先下载jar包 jxl.jar 下载地址:
http://www.andykhan.com/jexcelapi/download.html我就下载的第一个 JExcelApi v2.6.8 (1920kbytes) 这个,解压后jexcelapi_2_6_8\jexcelapi\docs下的index.html为该jar包的API文档jexcelapi_2_6_8\jexcelapi下有一个jxl.jar将jxl.jar拷贝到你项目的lib目录下,就引入jar包了楼主的意思是从数据库读出数据,之后导出Excel文件,我写了一个小例子,我介绍一下我的程序内容:不知道你用什么数据库,我以oracle数据库的dept表为例dept表字段为数字类型的deptno,字符串类型的dname和loc,就这3个字段DBConn.java 类提供了两个方法,方法getConn()返回与数据库的连接Connection方法closeConn()关闭与数据库的连接Dept.java 是一个JavaBean,封装了dept表的一条记录,成员变量分别对应表dept的3个字段,并生成get和set方法DeptDao.java 类提供方法 public static List getDept(Connection conn)返回一个List集合,里面装的是一个个的Dept对象,每一个对象都包含了dept表的一条记录,总之就是这个集合里面包含了dept表的所有记录内容介绍了这么多,也是为了下面的测试类能看明白,测试类Test.javaimport java.io.File;import java.util.Iterator;import java.util.List;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;public class Test {public static void main(String[] args) {try {// 在D盘生成一个名为"Java操作Excel.xls"的Excel文件WritableWorkbook wwb = Workbook.createWorkbook(new File("D:/Java操作Excel.xls"));// 生成名为第一页的工作表,参数0表示这是第一页WritableSheet sheet = wwb.createSheet("第一页", 0);DBConn db = new DBConn();List<Dept> list = DeptDao.getDept(db.getConn());//声明一个保存数字的单元格,使用Number的完整包路径,写全包名,防止与java.lang包的Number发生冲突jxl.write.Number number;//声明Label对象的2个引用变量Label labe1;Label labe2;//i与j用于计数int i = 0;int j = 0;//遍历集合中的元素for (Iterator<Dept> iterator = list.iterator(); iterator.hasNext();) {Dept dept = iterator.next();/*** Number的构造方法 Number(第几列,第几行,数字内容)* Label 的构造方法 Label (第几列,第几行,字符串内容)* 0,0 表示第一列,第一行* (i, j, dept.getDeptno()) 将第一列,第一行,内容设置为dept.getDeptno()方法返回的数字类型字段deptno* (++i, j, dept.getDname()) 将第二列,第一行,内容设置为dept.getDname()方法返回的字符串类型字段dname* (++i, j, dept.getLoc()) 将第三列,第一行,内容设置为dept.getLoc()方法返回的字符串类型字段loc*/number = new jxl.write.Number(i, j, dept.getDeptno());labe1 = new Label(++i, j, dept.getDname());labe2 = new Label(++i, j, dept.getLoc());// 将定义好的单元格添加到工作表中sheet.addCell(number);sheet.addCell(labe1);sheet.addCell(labe2);/*** i = 0; 那么下次循环后开始还是第一列* j++; 那么下次循环后开始就是第二行*/i = 0;j++;}// 写入数据并关闭文件wwb.write();wwb.close();// 关闭数据库连接db.closeConn();} catch (Exception e) {e.printStackTrace();}}}