A. jsp如何利用POI直接生成Excel並在頁面中導出
java中導出Excel有兩個組件可以使用,一個是jxl,一個是POI,我這里用的是POI。導出是可以在伺服器上生成文件,然後下載,也可以利用輸出流直接在網頁
中彈出對話框提示用戶保存或下載。生成文件的方式會導致伺服器中存在著垃圾文件,實現方式不太優雅,所以這里我採用的是後面直接通過輸出流的方式。
1、修改WEB伺服器的CONF/web.xml,添加
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
如果不添加這個,那麼在網頁中下載的時候就變成了JSP文件
2、download.jsp文件
<%@ page contentType="application/vnd.ms-excel" language="java" import="java.util.*,com.shangyu.action.WriteExcel" pageEncoding="GBK"%><%
response.setHeader("Content-Disposition","attachment;filename=test123.xls");//指定下載的文件名
response.setContentType("application/vnd.ms-excel");
WriteExcel we=new WriteExcel();
we.getExcel("111.xls",response.getOutputStream());
%>
注意不要有html代碼,並且除了<% %> 中間的代碼,其它的地方不要有空格。否則在導出文件的時候會在後台出現異常,雖然不影響程序的使用,到時令人看起來
不太舒服
3、WriteExcel.java 生成Excel的JavaBean,復雜的應用請查看API
package com.shangyu.action;
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
public class WriteExcel
{
public void getExcel(String sheetName,OutputStream output)
{
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet1=wb.createSheet("sheet1");
HSSFRow row=sheet1.createRow((short)0);
HSSFCell cell=row.createCell((short)0);
cell.setCellValue(1);
row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字元");
row=sheet1.createRow((short)1);
cell=row.createCell((short)0);
cell.setCellValue(1);
row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字元");
//FileOutputStream fileout=new FileOutputStream("workbook.xls");
try {
output.flush();
wb.write(output);
output.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println( "Output is closed ");
}
}
}
通過以上三步,應該可以直接生成Excel文件下載或保存了,這在一些信息系統中相當有用。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/shangyu79/archive/2008/07/21/2682541.aspx
B. JSP頁面將數據從mysql導出到excel的Java代碼
jsp要從mysql導出數據到excel分兩步操作:
後台查詢mysql符合條件的數據,放在session中。
頁面展示數據,並且控制導出,添加一個按鈕,調用導出方法執行。</ol>舉例說明:Java代碼sql = "select * from tablename";rs = stmt.executeQuery(sql);//新建Excel文件String filePath=request.getRealPath("aaa.xls");File myFilePath=new File(filePath);if(!myFilePath.exists())myFilePath.createNewFile();FileWriter resultFile=new FileWriter(myFilePath);PrintWriter myFile=new PrintWriter(resultFile);resultFile.close();//用JXL向新建的文件中添加內容OutputStream outf = new FileOutputStream(filePath);jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(outf);jxl.write.WritableSheet ws = wwb.createSheet("sheettest", 0);int i=0;int j=0;for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {ws.addCell(new Label(k,0,rs.getMetaData().getColumnName(k+1)));}while(rs.next()){out.println(rs.getMetaData().getColumnCount());for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {ws.addCell(new Label(k,j+i+1,rs.getString(k+1)));}i++;}wwb.write();wwb.close();}catch(Exception e){e.printStackTrace();}finally{rs.close();conn.close();}response.sendRedirect("aaa.xls");
C. jsp從資料庫查詢出來的數據如何讓生成excel報表。
你需要有可以生成excel的jar包,比如jxl.jar,然後通過這個jar包里的sheet,cell等類來創建你的excel的sheet,單元格等內容,用workbook來創建excel文件,具體的用法可以參考相關資料。
D. 如何把JSP頁面導出到Excel中
導出excel,常用兩種辦法。
1、java後台用第三方包 比如POI, 把你想要展示的數據,填進去,導出excel文件。
2、調用第三方插件顯示在jsp頁面,比如金格控制項。用戶在頁面可以在線編輯excel,然後 用戶手動導出成excel文件。
個人建議你,畫面jsp展示table之後,單獨留一個「導出」按鈕,用戶點擊之後,你後台java再把剛剛通過jsp展示的數據,封裝成excel,給用戶下載。也就是第一種方法。這種最常用。
E. javascript 將jsp中的table導出 excel
你試試這個方法。
var oWB = oXL.Workbooks.Add(); //新增工作簿
var oSheet = oWB.ActiveSheet; //創建工作表
var sel=document.body.createTextRange();//創建文字區域專
sel.moveToElementText(dataTable);//dataTable為table的id//定位區域
sel.select();//選擇屬
sel.execCommand("Copy");//復制
oSheet.Paste();//粘貼
oXL.Visible = true;
oXL.UserControl = true;
oSheet = null;
oWB = null;
oXL = null;
F. 怎麼把JSP頁面里的查詢出來的數據導出到excel
jsp頁面導出excel的話,剛好有做這個功能,可以參考如下代碼:
function getExplorer() {
var explorer = window.navigator.userAgent;
// ie
if (explorer.indexOf("MSIE") >= 0 || (explorer.indexOf("Windows NT 6.1;") >= 0 && explorer.indexOf("Trident/7.0;") >= 0) ) {
alert("識別你是IE瀏覽器1111======");
return 'ie';
}
// firefox
else if (explorer.indexOf("Firefox") >= 0) {
return 'Firefox';
}
// Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return 'Chrome';
}
// Opera
else if (explorer.indexOf("Opera") >= 0) {
return 'Opera';
}
// Safari
else if (explorer.indexOf("Safari") >= 0) {
return 'Safari';
}
}
//設置導出的excel的標題
var excelTitle ="表格數據";