本文目录一览:
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;
}
}