转自: http://newyaner.blog.sohu.com/84170098.html
因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式
word页面只要在jsp头设置如下指令:
<%@page contentType="application/msword;charset=GBK" %>
excel如下:
<%@page contentType="application/vnd.ms-excel;charset=GBK" %>
使用这种方式客户端必须安装有office软件,用户访问时将在ie中直接用word或excel打开该页面。
此方法优势是模板设计、调整方便,无需在服务器端使用复杂的POI或jxl技术,也无需在客户端使用ActiveX控件技术,更安全、方便,轻松实现较好的打印效果。
microsoft关于服务器端动态创建office文档的资料(asp示例):
http://support.microsoft.com/default.aspx?scid=KB;en-us;301044
方法二
1. 在Word或Excel中制作报表的样式。
Excel的行高和列宽单位无法用mm或cm表示。
需要计算。在1024*768下,1CM约为38像素。
以此为基准,可计算并控制报表的行列位置。
2. 在Word中设置“表格——标题行重复”。
在Excel中设置“文件——页面设置——工作表——打印标题”。
3. 另存为网页,改后缀名“htm”为“jsp”。
4. Word报表文件头为:
<%@page contentType="application/msword;charset=GBK" language="java"%>
Excel报表文件头为:
<% @page contentType="application/vnd.ms-excel;charset=GBK" language="java"%>
5. 在文件头部分定义打印参数变量如下(以Excel为例):
<%
//需要打印的记录条数
int PrintRowCount=RowCount;
//每页打印的记录条数
int PageRowCount=16;
//最后一页需要打印的空行的数目
int LoopNum=PageRowCount-PrintRowCount%PageRowCount;
//打印区域的高度,其中2的意思是每页需要重复的标题行的数目
int PrintAreaHeight=(PrintRowCount%PageRowCount==0)?PrintRowCount+2:PrintRowCount+LoopNum+2;
%>
6. 在<style></style>后,改动<!--[if gte mso 9]与<![endif]-->标签中的XML标签内容,主要是设置动态打印区域(以Excel为例):
<%
out.print(" ......
"<x:ExcelName>"+
"<x:Name>Print_Area</x:Name>"+
"<x:SheetIndex>1</x:SheetIndex>"+
"<x:Formula>=Sheet1!$A$1:$G$"+PrintAreaHeight+"</x:Formula>"+
"</x:ExcelName>"+
...... ");
%>
7. JSP其他编码。
下面是主体循环打印部分(以Excel为例):
<%
for (int i=1;i<=PrintRowCount; i++)
{
out.print("<tr>"<td>"+i+"</td></tr>"); //有内容
}
if (LoopNum!=PageRowCount) //有空行则打印空行补齐最末一页
for (int j=1;j<=LoopNum; j++)
{
out.print("<tr><td> </td></tr>");//无内容
}
%>
8. 测试并继续修改
1. 在Word或Excel中制作报表的样式。
Excel的行高和列宽单位无法用mm或cm表示。
需要计算。在1024*768下,1CM约为38像素。
以此为基准,可计算并控制报表的行列位置。
2. 在Word中设置“表格——标题行重复”。
在Excel中设置“文件——页面设置——工作表——打印标题”。
3. 另存为网页,改后缀名“htm”为“jsp”。
4. Word报表文件头为:
<%@page contentType="application/msword;charset=GBK" language="java"%>
Excel报表文件头为:
<% @page contentType="application/vnd.ms-excel;charset=GBK" language="java"%>
5. 在文件头部分定义打印参数变量如下(以Excel为例):
<%
//需要打印的记录条数
int PrintRowCount=RowCount;
//每页打印的记录条数
int PageRowCount=16;
//最后一页需要打印的空行的数目
int LoopNum=PageRowCount-PrintRowCount%PageRowCount;
//打印区域的高度,其中2的意思是每页需要重复的标题行的数目
int PrintAreaHeight=(PrintRowCount%PageRowCount==0)?PrintRowCount+2:PrintRowCount+LoopNum+2;
%>
6. 在<style></style>后,改动<!--[if gte mso 9]与<![endif]-->标签中的XML标签内容,主要是设置动态打印区域(以Excel为例):
<%
out.print(" ......
"<x:ExcelName>"+
"<x:Name>Print_Area</x:Name>"+
"<x:SheetIndex>1</x:SheetIndex>"+
"<x:Formula>=Sheet1!$A$1:$G$"+PrintAreaHeight+"</x:Formula>"+
"</x:ExcelName>"+
...... ");
%>
7. JSP其他编码。
下面是主体循环打印部分(以Excel为例):
<%
for (int i=1;i<=PrintRowCount; i++)
{
out.print("<tr>"<td>"+i+"</td></tr>"); //有内容
}
if (LoopNum!=PageRowCount) //有空行则打印空行补齐最末一页
for (int j=1;j<=LoopNum; j++)
{
out.print("<tr><td> </td></tr>");//无内容
}
%>
8. 测试并继续修改
1. 在Word或Excel中制作报表的样式。
Excel的行高和列宽单位无法用mm或cm表示。
需要计算。在1024*768下,1CM约为38像素。
以此为基准,可计算并控制报表的行列位置。
2. 在Word中设置“表格——标题行重复”。
在Excel中设置“文件——页面设置——工作表——打印标题”。
3. 另存为网页,改后缀名“htm”为“jsp”。
4. Word报表文件头为:
<%@page contentType="application/msword;charset=GBK" language="java"%>
Excel报表文件头为:
<% @page contentType="application/vnd.ms-excel;charset=GBK" language="java"%>
5. 在文件头部分定义打印参数变量如下(以Excel为例):
<%
//需要打印的记录条数
int PrintRowCount=RowCount;
//每页打印的记录条数
int PageRowCount=16;
//最后一页需要打印的空行的数目
int LoopNum=PageRowCount-PrintRowCount%PageRowCount;
//打印区域的高度,其中2的意思是每页需要重复的标题行的数目
int PrintAreaHeight=(PrintRowCount%PageRowCount==0)?PrintRowCount+2:PrintRowCount+LoopNum+2;
%>
6. 在<style></style>后,改动<!--[if gte mso 9]与<![endif]-->标签中的XML标签内容,主要是设置动态打印区域(以Excel为例):
<%
out.print(" ......
"<x:ExcelName>"+
"<x:Name>Print_Area</x:Name>"+
"<x:SheetIndex>1</x:SheetIndex>"+
"<x:Formula>=Sheet1!$A$1:$G$"+PrintAreaHeight+"</x:Formula>"+
"</x:ExcelName>"+
...... ");
%>
7. JSP其他编码。
下面是主体循环打印部分(以Excel为例):
<%
for (int i=1;i<=PrintRowCount; i++)
{
out.print("<tr>"<td>"+i+"</td></tr>"); //有内容
}
if (LoopNum!=PageRowCount) //有空行则打印空行补齐最末一页
for (int j=1;j<=LoopNum; j++)
{
out.print("<tr><td> </td></tr>");//无内容
}
%>
8. 测试并继续修改
三、
<object classid="clsid:0002E510-0000-0000-C000-000000000046" id="Sdivadsheet1"
style="HEIGHT: 100%; WIDTH: 100%" width="14" height="14">
<param name="HTMLURL" value="<%=strURL%>">
<param name="HTMLData" value="">
<param name="DataType" value="HTMLURL">
<param name="AutoFit" value="0">
<param name="DisplayColHeaders" value="0">
<param name="DisplayGridlines" value="0">
<param name="DisplayHorizontalScrollBar" value="-1">
<param name="DisplayRowHeaders" value="0">
<param name="DisplayTitleBar" value="0">
<param name="DisplayToolbar" value="-1">
<param name="DisplayVerticalScrollBar" value="-1">
<param name="EnableAutoCalculate" value="-1">
<param name="EnableEvents" value="0">
<param name="MoveAfterReturn" value="0">
<param name="MoveAfterReturnDirection" value="0">
<param name="RightToLeft" value="0">
<param name="ViewableRange" value="1:100">
</object>
分享到:
相关推荐
### 使用JSP实现Word、Excel格式报表打印 #### 一、使用JSP生成Word文档 在JSP中生成Word文档可以通过设置正确的`content-type`来实现。具体来说,只需要在JSP页面的头部添加以下指令: ```jsp ...
在导出Word或Excel时,JSP通常用于处理后端数据的获取和处理,而JavaScript则用于生成文件并触发下载。 在实际操作中,我们通常不直接使用JavaScript生成Word或Excel文件,因为这涉及到复杂的数据格式化和文件结构...
总之,JSP导出Excel和Word是常见的功能需求,通过Apache POI库可以轻松实现。正确设置响应头和使用流处理可以确保文件能被正确下载,同时根据实际需求调整数据处理和样式设置,能够创建符合业务需求的导出文件。
要实现从JSP导出Word文档,我们可以利用Apache POI库。Apache POI是一个开源项目,提供API用于读写Microsoft Office格式的文件,包括Word(.doc和.docx)、Excel(.xls和.xlsx)等。在JSP中使用POI,我们可以创建一...
此外,Apache POI不仅仅支持Excel,还可以导出Word和PowerPoint文件。对于Word,可以使用`XWPFDocument`,而对于PowerPoint,则可以使用`XSLFSlideShow`。导出流程与Excel类似,只是使用的类和方法有所不同。 总的...
本文将深入探讨如何在JSP环境中实现Excel文件的导入与导出功能,利用Apache POI库作为主要工具。 ### Apache POI简介 Apache POI是一个开源的Java API,用于读写Microsoft Office格式的文件,如Word、Excel等。它...
"报表导出excel word pdf html"这个主题涵盖了将数据导出为不同格式的技术,这些格式都是日常工作和交流中常用的文档类型。以下是关于这些格式以及如何在Java环境中实现导出的详细知识: 1. Excel:Microsoft Excel...
4. **JSP实现Excel/Word文档打印方法**: 要实现针对这些文档的打印功能,通常需要借助JavaScript库,如jsPDF或html2canvas,它们可以将HTML内容转换成PDF,然后用户可以打印PDF。对于Word,由于JavaScript无法直接...
在日常工作中,经常需要将网页上的数据导出到其他格式,如Word或Excel等,以便于进一步处理或分享。本文主要介绍如何利用JSP技术将页面中的表格(Table)数据导出为Word文档。 #### 基本原理与实现步骤 要实现这一...
二、使用JSP实现WORD、EXCEL格式报表打印: 在JSP中生成Word文档,关键在于利用Java API,如Apache POI库,它提供了对Microsoft Office格式文件(包括Word和Excel)的读写支持。对于Word,首先要在JSP头部设置相应的...
本项目结合了SpringMVC框架与JasperReport工具,实现了报表的多种功能,包括分页查看、文件导出(PDF、Excel、Word)以及HTML展示和浏览器打印功能。 首先,SpringMVC作为Java Web开发的主流MVC框架,提供了模型-...
在教育场景下,教师可能需要从Web应用程序中导出学生的成绩、课程表等信息到Word或Excel文档,方便打印或进一步处理。下面我们将详细探讨如何使用JSP来实现这个功能。 1. **JSP基础** JSP是由Java Servlet技术发展...
SOAOffice除了提供Word/Excel动态数据填充,Word/Excel数据导入导出,Word/Excel/PowerPoint等Office文档的在线打开、编辑、保存,权限控制,只读控制等功能外,还给在线办公内置了强大的支持功能:强制痕迹保留,...
标题中的“JSP导出Excel.docx”表明我们要讨论的主题是使用Java服务器页面(JSP)来生成Excel文件。描述部分未提供具体内容,但我们可以基于标题和标签来深入讲解。 在Java开发中,导出Excel文件是常见的需求,通常...
Apache POI 是一个开源的 Java 库,用于读取和写入 Microsoft Office 文件格式,包括 Excel、Word 和 PowerPoint 等。POI 库提供了一个完整的解决方案来处理 Microsoft Office 文件,能够读取和写入 Excel 文件中的...
Apache POI是Apache软件基金会的一个开源项目,主要用来读写Microsoft Office格式的文件,如Word、Excel和PowerPoint等。在我们的场景中,我们将关注Excel的处理: - **HSSF**:用于处理老版本的Excel文件(.xls)...
除了将网页中的table数据导出到Excel外,还可以考虑其他格式的导出,例如Word文档。 **示例代码** (将网页内容导出为Word文档): ```jsp <%@ page contentType="application/msword" %> <!-- 设置本网页为Word格式 ...