项目中要求把数据库数据导出为excle表格的形式通过java
最简单就是通过poi.jar包
下载jar在http://download.csdn.net/download/rainjm/10013839(各类工具包都有)
代码如下
package azj;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class exportExcle {
//这里的resp 是用于在当前页面下载excle 在浏览器上显示
public void export(HttpServletResponse resp) {
//创建excle节点
//注意如果你导出的数据大于excle默认行数(好像是6万多行),须自己坐下判断
//如果导出的数据为几十万行,须要借用内存 最新的poi.jar提供了这个方法 感兴趣可以去看下
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("yr");
HSSFRow row = sheet.createRow(0);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//excle第一行标签内容名称
row.createCell(0).setCellValue("name");
row.createCell(1).setCellValue("pwd");
row.createCell(2).setCellValue("age");
/这里只写入了一行数据 要写入多行 自己在根据自己需求在改写
//写入多个 示例
//for(int i=0;i<xxx.legth();i++){
// row = sheet.createRow(i+1);
// row.createCell(0).setCellValue("");
// row.createCell(1).setCellValue("");
// row.createCell(2).setCellValue("");
// }
row = sheet.createRow(1);
row.createCell(0).setCellValue("admin");
row.createCell(1).setCellValue("123456");
row.createCell(2).setCellValue("22");
//在前台网页 出现下载页面的展示 可以把文件另存为想要的位置
//注意你需要提供一个response
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
try
{
String msg = new String(
("azj" + format.format(new Date()) + ".xls").getBytes(),
"ISO-8859-1");
OutputStream fout = resp.getOutputStream();
resp.reset();
resp.setContentType("application/vnd.ms-excel");
resp.addHeader("Content-Disposition", "attachment;filename="
+ msg);
wb.write(fout);
fout.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
这只是示例代码,根据自己需求再进行开发编码!如果你要在前台页面出现下载页面的展示,会出现随机报错的情况,对程序无影响,出现这个情况是由于你前台页面调用了respons.getwrite()的方法 与后台调用response.getOutputStream();出现冲突情况引起的;如果你前台页面没有调用getOutputStream();那应该不会报错!如果报错了 到网上搜搜 ,都是大众错误此处省略!