項目中要求把數據庫數據導出爲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();那應該不會報錯!如果報錯了 到網上搜搜 ,都是大衆錯誤此處省略!