java导出数据为excle

项目中要求把数据库数据导出为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();那应该不会报错!如果报错了 到网上搜搜 ,都是大众错误此处省略!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章