//对象传输类:User.java
package com.brj.exportexcel;
public class User {
private int id;
private String userName;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//模拟数据提供类:UsersProvider.java
package com.brj.exportexcel;
import java.util.ArrayList;
import java.util.List;
public class UsersProvider {
public static List<User> getUsers() {
List<User> list = new ArrayList<User>();
User user = null;
for (int i = 0; i < 20; i++) {
user = new User();
user.setId(i);
user.setUserName("brj" + i);
user.setPassword("liming" + i);
list.add(user);
}
return list;
}
}
ExcelExporter.java
package com.brj.exportexcel;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* 导出到Excel表格中实例
*
* @author brj
* @time 2008-09-19
*
*/
public class ExcelExporter {
/**
* @param args
*/
public static void main(String[] args) {
try {
// 用当前时间作为文件名
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
String currentTime = sf.format(new Date());
System.out.println("FileName: " + currentTime);
// 导出目的似乎 [ d: ] 盘
String driverName = "d:/";
String fileName = driverName + currentTime + ".xls";
// 打开文件
WritableWorkbook book = Workbook.createWorkbook(new File(fileName));
// 生成名为“SheetOne”的工作表,参数0表示这是第一个sheet
WritableSheet sheet = book.createSheet("SheetOne", 0);
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),以及单元格内容
Label userIdLbTitle = new Label(0, 0, "UserId");
Label userNameLbTitle = new Label(1, 0, "UserName");
Label passwordLbTitle = new Label(2, 0, "Password");
// 将定义好的单元格添加到工作表中
sheet.addCell(userIdLbTitle);
sheet.addCell(userNameLbTitle);
sheet.addCell(passwordLbTitle);
// 得到需要导出的数据(这里我只是模拟数据,实际要从数据库中得到)
List<User> list = UsersProvider.getUsers();
// 将数据插入到相应的单元格中
for (int i = 0; i < list.size(); i++) {
Label userId = new Label(0, i + 1, list.get(i).getId() + "");
Label userName = new Label(1, i + 1, list.get(i).getUserName());
Label password = new Label(2, i + 1, list.get(i).getPassword());
sheet.addCell(userId);
sheet.addCell(userName);
sheet.addCell(password);
}
// 执行写入和关闭文件
book.write();
book.close();
System.out.println("文件导出成功 . 请到 " + driverName + " 盘 去找文件.");
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}