原本是想实现B/S结构下在客户端生成excel文件,有人提议先在服务器端生成excel文件,然后将excel文件转为outputStrean流,再通过response将其输出到客户端,这样客户端会提示“打开还是另存为”,就能实现了。
现在我已经生成了excel文件,但以后如何实现,哪位能给具体的指点。我对response的用法实在是白痴,假设excel文件名为"test.xls".
现在我已经生成了excel文件,但以后如何实现,哪位能给具体的指点。我对response的用法实在是白痴,假设excel文件名为"test.xls".
或者
response.setHeader("content-disposition","attachment;filename=\"test.xls\"");//下载
是只在jsp文件(testexcel.jsp)中写
<%@ page contentType="text/html; charset=GBK" %>
<html>
<%
// 设置响应头和下载保存的文件名
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=test.xls");
%>
</body>
</html>
这样当我在tomcat中打开testexcel.jsp页面就会弹出下载对话框吗?
假设我把test.xls放在和testexcel.jsp同一级目录中
package com.jagie.test;
import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import java.awt.Color;public class Test{
public static void writeExcel(OutputStream os) throws Exception {
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
jxl.write.WritableSheet ws = wwb.createSheet("TestSheet1", 0);
jxl.write.Label labelC = new jxl.write.Label(0, 0, "我爱中国");
ws.addCell(labelC);
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,20, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setBackground(jxl.format.Colour.RED);
labelC = new jxl.write.Label(6, 0, "中国爱我",wcfFC);
ws.addCell(labelC);
//写入Exel工作表
wwb.write();
//关闭Excel工作薄对象
wwb.close();
} //最好写一个这样的main方法来测试一下你的这个class是否写好了。
public static void main(String[] args)throws Exception{
File f=new File("kk.xls");
f.createNewFile();
writeExcel(new FileOutputStream(f));
}
} 写一个jsp,来利用Test这个javabean输出excel文档。///////////////////////////test_excel.jsp//////////////////////////<%@page import="com.jagie.test.Test" %>
<%
response.reset();
response.setContentType("application/vnd.ms-excel");
Test.writeExcel(response.getOutputStream());
%>
first last email
second last add
<%@ page contentType="application/vnd.ms-excel"%>
就这样更简单。。呵呵
既然在服务器上生成了excel文件,直接通过网址连接就可以了哦.
例如:
使用的服务器是tomcat,
对应的网站文件是在webapps/test/
网站运行的路径是http://lcoalhost:8080/test/test.jsp
生成的excel文件在webapps/test/
假设excel文件名为"test.xls".
那么要打开文件直接就是http://lcoalhost:8080/test/test.xls