用POI来作。包下载地址 http://jakarta.apache.org/poi/index.html代码如下:public static void ResultSet2Excel() {
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=root_pwd&useUnicode=true&characterEncoding=GB2312";
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String sql = "select * from reporttest";
ResultSet rs = stmt.executeQuery(sql);
//取表字段信息
Database db = new Database();
DataSet ds = db.resultSetToDataSet(rs);
Column[] cols = ds.getColumns();
//创建Excel表结构信息
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
//在Excele文件中创建表头
int row_num = 0;
HSSFRow row = sheet.createRow(row_num);
HSSFCell cell = null;
int cols_count = cols.length;
//设置表字段信息到excel作为表头
for (int i = 0; i < cols_count; i++) {
cell = row.createCell( (short) i);
cell.setCellValue(cols[i].getColumnName());
}
row_num++;
rs.first();
while (rs.next()) {
row = sheet.createRow(row_num);
for (int i = 0; i < cols_count; i++) {
cell = row.createCell( (short) i);
cell.setCellValue(rs.getString(cols[i].getColumnName()));
}
row_num++;
}
rs.close();
stmt.close();
conn.close();
FileOutputStream out = new FileOutputStream("rs2excel.xls");
wb.write(out);
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=root_pwd&useUnicode=true&characterEncoding=GB2312";
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String sql = "select * from reporttest";
ResultSet rs = stmt.executeQuery(sql);
//取表字段信息
Database db = new Database();
DataSet ds = db.resultSetToDataSet(rs);
Column[] cols = ds.getColumns();
//创建Excel表结构信息
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
//在Excele文件中创建表头
int row_num = 0;
HSSFRow row = sheet.createRow(row_num);
HSSFCell cell = null;
int cols_count = cols.length;
//设置表字段信息到excel作为表头
for (int i = 0; i < cols_count; i++) {
cell = row.createCell( (short) i);
cell.setCellValue(cols[i].getColumnName());
}
row_num++;
rs.first();
while (rs.next()) {
row = sheet.createRow(row_num);
for (int i = 0; i < cols_count; i++) {
cell = row.createCell( (short) i);
cell.setCellValue(rs.getString(cols[i].getColumnName()));
}
row_num++;
}
rs.close();
stmt.close();
conn.close();
FileOutputStream out = new FileOutputStream("rs2excel.xls");
wb.write(out);
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
解决方案 »
- 是否要对<jsp:forward>行为所指向的页面进行encodeURL以使之不脱离会话
- tomcat5改变默认路径的问题
- 【请问】用MyEclipse开发web程序的时候如果使用的虚拟目录的话那么怎么构建啊
- jsp怎样生成静态页面?麻烦给个实例,简单点也行。分不够加(急)
- JSP中文显示和数值传递小问题两个.
- 一个简单的问题
- Tomcat打报表报错NullPointerException.求解
- 请问如何得到指定的日期的后一天?
- jsp在aix上取的路径问题?
- 极其简单的问题,jsp中我想转到另一个页面,怎么写??
- 大家帮我看看这个简单的JSP代码,加了 for循环就不正常了
- 从jsp/servlet中导出excel的问题!!!急!在线等!
更加简单做法是在客户端用js写excel
不过有权限限制