本文目錄一覽:
jsp頁面的excel的導出
額…我給你看看哈.!
仍然用response.setContentType(“application/vnd.ms-excel”) ,後面看你原來是用什麼方式輸出的,比如XML方式的,稍加修改就可以了。
你打開一個EXCEL文件,選擇另存為XML格式,現在這個XML文件可以用記事本打開,最後把文件的擴展名.XML改為.XLS,就可以雙擊在EXCEL裡面打開。
你的JSP輸出的內容,按照前面XML的格式輸出你的內容,瀏覽器上就會下載一個EXCEL可以打開的文件,什麼格式都可以實現。
補充:
這個帖子實在說不下呀。我過兩天內在我空間發表一篇用PHP生成EXCEL的文件的文章吧。
你的JSP只輸出文本吧,但是你用記事本打開一個EXCEL看一看,開頭是什麼「刑唷」的東西,然後完全是亂碼,你的JSP怎麼才能生成這些亂碼呢?
我估計你儘管用了response.setContentType(“application/vnd.ms-excel”),實際上是輸出的還是HTML代碼,我只能估計,因為第一次就問你,你沒有補充這個關鍵內容,卻讓我猜,還很著急的樣子。如果你用輸出的內容用的HTML,用了一個ms-excel的頭,實際上只是讓EXCEL強制把你的內容理解為EXCEL工作表,當然是不可能實現多個工作表的。
我已經告訴你了,應該用XML,方法是用EXCEL新建立一個文件,簡單輸入少數內容,你保存為XML格式,你就可以用記事本打開這個XML文件查看內容,而且也可以修改為.XLS文件讓EXCEL直接打開。這種方式和上面的HTML一樣,也是掛羊頭賣狗肉,但是這樣羊頭樣子逼真一點,可以實現多個工作表。你自己也不去實踐一下,我貼個EXCEL內容上來也是亂七八糟的呀。
如果還不明白的話.在看看下面的
在需要導出Excel的jsp頁面做一個「導出到Excel」的按鈕
這是代碼:
input name=”btmExcel” class=”button1″ type=”button” id=”btmExcel” value=”導出當前頁” onclick=”saveCode(tableExcel)”
就是這張表的id=「tableExcel」;
==================================================
function saveCode(obj){
var winname = window.open(”, ‘_blank’, ‘top=10000’);
var strHTML = document.all.tableExcel.innerHTML;
winname.document.open(‘text/html’, ‘replace’);
winname.document.writeln(strHTML);
winname.document.execCommand(‘saveas’,”,yy+”年”+mt+”月”+dd+”日”+’ 假植情況報表.xls’);
winname.close();
}
這樣就把我當前 比如說分頁顯示10頁的數據 導出到Excel
但是我想把查詢出的所有數據都導出 怎麼做??不單單這10頁的數據
祝你成功,,,,!!!!
如何把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 =”表格數據”;
function toOutPutExcel(tableid,title) {// 整個表格拷貝到EXCEL中
excelTitle =title;
if (getExplorer() == ‘ie’) {
var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject(“Excel.Application”);
// 創建AX對象excel
var oWB = oXL.Workbooks.Add();
// 獲取workbook對象
var xlsheet = oWB.Worksheets(1);
// 激活當前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
// 把表格中的內容移到TextRange中
sel.select;
// 全選TextRange中內容
sel.execCommand(“Copy”);
// 複製TextRange中內容
xlsheet.Paste();
// 粘貼到活動的EXCEL中
oXL.Visible = true;
// 設置excel可見屬性
try {
var fname = oXL.Application.GetSaveAsFilename(“Excel.xls”,
“Excel Spreadsheets (*.xls), *.xls”);
} catch (e) {
print(“Nested catch caught ” + e);
} finally {
oWB.SaveAs(fname);
oWB.Close(savechanges = false);
// xls.visible = false;
oXL.Quit();
oXL = null;
// 結束excel進程,退出完成
// window.setInterval(“Cleanup();”,1);
idTmr = window.setInterval(“Cleanup();”, 1);
}
} else {
tableToExcel(tableid);
}
}
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
var tableToExcel = (function() {
var uri = ‘data:application/vnd.ms-excel;base64,’, template = ‘html xmlns:o=”urn:schemas-microsoft-com:office:office” xmlns:x=”urn:schemas-microsoft-com:office:excel” xmlns=””head!–[if gte mso 9]xmlx:ExcelWorkbookx:ExcelWorksheetsx:ExcelWorksheetx:Name{worksheet}/x:Namex:WorksheetOptionsx:DisplayGridlines//x:WorksheetOptions/x:ExcelWorksheet/x:ExcelWorksheets/x:ExcelWorkbook/xml![endif]–/headbodytable{table}/table/body/html’, base64 = function(
s) {
return window.btoa(unescape(encodeURIComponent(s)))
}, format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
}
return function(table, name) {
if (!table.nodeType)
table = document.getElementById(table)
var ctx = {
worksheet : excelTitle || ‘Worksheet’,
table : table.innerHTML
}
//window.location.href = uri + base64(format(template, ctx))
var titleDate= new Date().Format(“yyyy-MM-dd hh-mm-ss”);
document.getElementById(“dlink”).href = uri + base64(format(template, ctx));
document.getElementById(“dlink”).download = excelTitle+titleDate+”.xls”;
document.getElementById(“dlink”).click();
}
})()
jsp如何導出excel
類文件,導入poi包。package com.grs.exportexcel;import java.io.*;
import java.util.List;
import org.apache.poi.hssf.usermodel.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public final class ExcelUtils
{public ExcelUtils() {
}/**
* 導出excel對外介面
*
* @param title 標題 如:同業對標分段統計報表
* @param tableData 數據表數據 如:new String[][]{{“表頭1″,”表頭2”},{“data1″,”data2”}}
* @param exportFileName 導出後的文件名 如:data.xls
* @param request
* @param response
*/
public static void exportExcelData(
String title,
String[][] tableData,
String exportFileName,
HttpServletRequest request,
HttpServletResponse response) {
response.reset();
String fileName = “attachment;filename=\”” + exportFileName + “\”;”;
response.setHeader(“Content-disposition”, fileName);
response.setContentType(“application/vnd.ms-excel”);
try {
exportExcel(title,tableData,response.getOutputStream(),createWorkbook());
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (Exception e) {
e.printStackTrace();
// log.error(e.getMessage(), e);
}
}
protected static void exportExcel(
String title,
String[][] tableData,
OutputStream output,
HSSFWorkbook workbook)
throws Exception {
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFCellStyle titleStyle = workbook.createCellStyle();
titleStyle.setFillBackgroundColor((short) 55);
HSSFFont hsFont = workbook.createFont();
hsFont.setBoldweight((short) 700);
String titles[] = tableData[0];
titleStyle.setFont(hsFont);
titleStyle.setAlignment((short) 2);
HSSFRow row = sheet.createRow(1); row.setHeight((short) 300);
HSSFCell cell = createCell(row, (short) 0, title, titleStyle); row = sheet.createRow(3);
row.setHeight((short) 250);
short i = 0;
for (int forI = 0; forI titles.length; forI++) {
createCell(row, i, titles[forI], titleStyle);
i++;
} int rowCount = 4; for (int rowPos = 1; rowPos tableData.length; rowPos++) {
row = sheet.createRow(rowCount++);
i = 0;
for (int colPos = 0; colPos tableData[rowPos].length; colPos++) {
createCell(row, i, tableData[rowPos][colPos], null);
i++;
}
}
try {
workbook.write(output);
} catch (Exception e) {
//throw new Exception(e);
}
} protected static HSSFCell createCell(
HSSFRow row,
short cellCount,
String value,
HSSFCellStyle titleStyle) {
HSSFCell cell = row.createCell(cellCount);
cell.setEncoding((short) 1);
if (titleStyle != null)
cell.setCellStyle(titleStyle);
cell.setCellValue(value); return cell;
}public static HSSFWorkbook createWorkbook() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
return wb;
}public static HSSFWorkbook createWorkbook(int sheetCount)
throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
for (int i = 0; i sheetCount; i++) {
HSSFSheet si = wb.createSheet();
} return wb;
}public static HSSFWorkbook createWorkbook(int sheetCount, List sblxList)
throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
for (int i = 0; i sheetCount; i++) {
HSSFSheet si = wb.createSheet((String) sblxList.get(i));
wb.setSheetName(i, (String) sblxList.get(i), (short) 1);
} return wb;
}}頁面代碼!%@ page contentType=”text/html; charset=gb2312″%
%@ page import=”java.util.*”%
%@ page import=”com.grs.exportexcel.*”%%
//導出在數據
String queryData[][] = new String[3][2]; //[行][列]
//列名
/***
***在此處獲得請求在參數,根據參數或者調用方法得到結果
***將結果存入queryDate[][]中
***/ String exportFileName = “data.xls”;//導出Excel在名稱可以根據參數命名。
//導出EXCEL
ExcelUtils.exportExcelData(“san”, queryData, exportFileName,
request, response);
if (out != null out.getBufferSize() != 0) {
out.clearBuffer();
out = pageContext.pushBody();
}
%
如何把jsp頁面導出到excel中
你是想將jsp中的數據導出到excel吧,有個關於java導出excel的jar包封裝了這個功能,這個jar包你自己去百度下載下來就行,給你個示例,看看就能明白了。
package oa.common.utils;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import java.lang.reflect.Field;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/***
* @author lsf
*/
public class ExportExcel {
/***************************************************************************
* @param fileName EXCEL文件名稱
* @param listTitle EXCEL文件第一行列標題集合
* @param listContent EXCEL文件正文數據集合
* @return
*/
public final static String exportExcel(String fileName,String[] Title, ListObject listContent) {
String result=”系統提示:Excel文件導出成功!”;
// 以下開始輸出到EXCEL
try {
//定義輸出流,以便打開保存對話框______________________begin
HttpServletResponse response=ServletActionContext.getResponse();
OutputStream os = response.getOutputStream();// 取得輸出流
response.reset();// 清空輸出流
response.setHeader(“Content-disposition”, “attachment; filename=”+ new String(fileName.getBytes(“GB2312″),”ISO8859-1”));
// 設定輸出文件頭
response.setContentType(“application/msexcel”);// 定義輸出類型
//定義輸出流,以便打開保存對話框_______________________end
/** **********創建工作簿************ */
WritableWorkbook workbook = Workbook.createWorkbook(os);
/** **********創建工作表************ */
WritableSheet sheet = workbook.createSheet(“Sheet1”, 0);
/** **********設置縱橫列印(默認為縱打)、列印紙***************** */
jxl.SheetSettings sheetset = sheet.getSettings();
sheetset.setProtected(false);
/** ************設置單元格字體************** */
WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);
/** ************以下設置三種單元格樣式,靈活備用************ */
// 用於標題居中
WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 線條
wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直對齊
wcf_center.setAlignment(Alignment.CENTRE); // 文字水平對齊
wcf_center.setWrap(false); // 文字是否換行
// 用於正文居左
WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 線條
wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直對齊
wcf_left.setAlignment(Alignment.LEFT); // 文字水平對齊
wcf_left.setWrap(false); // 文字是否換行
/** ***************以下是EXCEL開頭大標題,暫時省略********************* */
//sheet.mergeCells(0, 0, colWidth, 0);
//sheet.addCell(new Label(0, 0, “XX報表”, wcf_center));
/** ***************以下是EXCEL第一行列標題********************* */
for (int i = 0; i Title.length; i++) {
sheet.addCell(new Label(i, 0,Title[i],wcf_center));
}
/** ***************以下是EXCEL正文數據********************* */
Field[] fields=null;
int i=1;
for(Object obj:listContent){
fields=obj.getClass().getDeclaredFields();
int j=0;
for(Field v:fields){
v.setAccessible(true);
Object va=v.get(obj);
if(va==null){
va=””;
}
sheet.addCell(new Label(j, i,va.toString(),wcf_left));
j++;
}
i++;
}
/** **********將以上緩存中的內容寫到EXCEL文件中******** */
workbook.write();
/** *********關閉文件************* */
workbook.close();
} catch (Exception e) {
result=”系統提示:Excel文件導出失敗,原因:”+ e.toString();
System.out.println(result);
e.printStackTrace();
}
return result;
}
}
原創文章,作者:V2EL9,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129405.html