当前位置: 技术问答>java相关
救命!!!各位老大,servlet中把查出来的数据(报表)用excel显示,点击一个button(html),就要显示,怎么办?急急急!一定给分,最好有
来源: 互联网 发布时间:2015-06-02
本文导语: 救命!!!各位老大,servlet中把查出来的数据用excel显示,点击一个button(html),就要在excel中显示,怎么办?急急急!一定给分,最好有例子,小弟先谢谢了!! | /** * 下载附件。 ...
救命!!!各位老大,servlet中把查出来的数据用excel显示,点击一个button(html),就要在excel中显示,怎么办?急急急!一定给分,最好有例子,小弟先谢谢了!!
|
/**
* 下载附件。
* @param req 客户端请求对象
* @param attachmentID 附件ID
*/
public int download( HttpServletResponse res, String fileName )
throws Exception
{
res.setHeader( "Content-Disposition", "inline");
res.setContentType( "application/vnd.ms-excel" );
InputStream in = new FileInputStream( fileName );
BufferedInputStream bis = new BufferedInputStream( in );
ServletOutputStream out = res.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream( out );
int BUFF_SIZE = 10240;
byte[] buffer = new byte[ BUFF_SIZE ];
int bytesRead;
try
{
while ( true )
{
synchronized ( buffer )
{
int amountRead = bis.read( buffer );
if ( amountRead == -1 )
{
break;
}
bos.write( buffer, 0, amountRead );
}
}
}
finally
{
if ( bis != null )
{
bis.close();
}
if ( bos != null )
{
bos.close();
}
if ( in != null )
{
in.close();
}
if ( out != null )
{
out.close();
}
}
return 0;
}
* 下载附件。
* @param req 客户端请求对象
* @param attachmentID 附件ID
*/
public int download( HttpServletResponse res, String fileName )
throws Exception
{
res.setHeader( "Content-Disposition", "inline");
res.setContentType( "application/vnd.ms-excel" );
InputStream in = new FileInputStream( fileName );
BufferedInputStream bis = new BufferedInputStream( in );
ServletOutputStream out = res.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream( out );
int BUFF_SIZE = 10240;
byte[] buffer = new byte[ BUFF_SIZE ];
int bytesRead;
try
{
while ( true )
{
synchronized ( buffer )
{
int amountRead = bis.read( buffer );
if ( amountRead == -1 )
{
break;
}
bos.write( buffer, 0, amountRead );
}
}
}
finally
{
if ( bis != null )
{
bis.close();
}
if ( bos != null )
{
bos.close();
}
if ( in != null )
{
in.close();
}
if ( out != null )
{
out.close();
}
}
return 0;
}
|
你可以把点击Button做成一个对Servlet的请求,用OutputStream以inline形式返回Excel文档。
如果需要自己生成Excel文件,你可以使用jakarta.apache.org,Excel文件格式相对来说很简单,处理起来不很难。
如果需要自己生成Excel文件,你可以使用jakarta.apache.org,Excel文件格式相对来说很简单,处理起来不很难。
|
呵呵,刚才说漏了,你应该研究一下Apache的POI项目
|
基本流程如下
Button-(请求)->Servlet-(查询)->数据库-(结果)->POI-(Excel)->OutputStream-(设置Header)->Servlet-(输出流)->客户端浏览器
具体细节你可以参考POI项目的例子和Servlet的相关方法
res.setHeader( "Content-Disposition", "inline");
Button-(请求)->Servlet-(查询)->数据库-(结果)->POI-(Excel)->OutputStream-(设置Header)->Servlet-(输出流)->客户端浏览器
具体细节你可以参考POI项目的例子和Servlet的相关方法
res.setHeader( "Content-Disposition", "inline");
|
你查查vba,里面有和excel的接口,然后在你的servlet中生成操纵客户端excel的代码,返回到客户端.
|
你会jsp吗?我现在手头没有servlet的,我给你一个jsp的吧,稍微改动一下,就可以改成servlet的。注意查收