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();那應該不會報錯!如果報錯了 到網上搜搜 ,都是大衆錯誤此處省略!


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