jsp实现针对excel及word文档的打印方法

本文实例讲述了jsp实现针对excel及word文档的打印方法。分享给大家供大家参考,具体如下:

因为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&

简单示例:

使用word建立一文档,画表格如下:

----------------------------
| 用户名 | 真实姓名 | 性别 |
----------------------------
| guest  | 路人甲   | 男   |
----------------------------

保存为Web页test.htm, 将test.htm改名为test.jsp,修改其中guest、路人甲、男为从数据库动态查询,如下:

<%@ page contentType="application/msword;charset=GBK" %>
<%@ page import="java.sql.*" %>
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=GB2312">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<title>用户信息</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
 <o:Author>evan zhao</o:Author>
 <o:LastAuthor>evan zhao</o:LastAuthor>
 <o:Revision>1</o:Revision>
 <o:TotalTime>1</o:TotalTime>
 <o:Created>2003-08-20T16:26:00Z</o:Created>
 <o:LastSaved>2003-08-20T16:27:00Z</o:LastSaved>
 <o:Pages>1</o:Pages>
 <o:Company>taiping</o:Company>
 <o:Lines>1</o:Lines>
 <o:Paragraphs>1</o:Paragraphs>
 <o:Version>9.2812</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
 <w:PunctuationKerning>
 <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
 <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
 <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
 <w:Compatibility>
  <w:SpaceForUL>
  <w:BalanceSingleByteDoubleByteWidth>
  <w:DoNotLeaveBackslashAlone>
  <w:ULTrailSpace>
  <w:DoNotExpandShiftReturn>
  <w:AdjustLineHeightInTable>
  <w:UseFELayout>
 </w:Compatibility>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
@font-face
  {font-family:宋体;
  panose-1:2 1 6 0 3 1 1 1 1 1;
  mso-font-alt:SimSun;
  mso-font-charset:134;
  mso-generic-font-family:auto;
  mso-font-pitch:variable;
  mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
  {font-family:"@宋体";
  panose-1:2 1 6 0 3 1 1 1 1 1;
  mso-font-charset:134;
  mso-generic-font-family:auto;
  mso-font-pitch:variable;
  mso-font-signature:3 135135232 16 0 262145 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
  {mso-style-parent:"";
  margin:0cm;
  margin-bottom:.0001pt;
  text-align:justify;
  text-justify:inter-ideograph;
  mso-pagination:none;
  font-size:10.5pt;
  mso-bidi-font-size:12.0pt;
  font-family:"Times New Roman";
  mso-fareast-font-family:宋体;
  mso-font-kerning:1.0pt;}
 /* Page Definitions */
@page
  {mso-page-border-surround-header:no;
  mso-page-border-surround-footer:no;}
@page Section1
  {size:595.3pt 841.9pt;
  margin:72.0pt 90.0pt 72.0pt 90.0pt;
  mso-header-margin:42.55pt;
  mso-footer-margin:49.6pt;
  mso-paper-source:0;
  layout-grid:15.6pt;}
div.Section1
  {page:Section1;}
-->
</style>
</head>
<body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'>
<div class=Section1 style='layout-grid:15.6pt'>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse; border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
 <tr>
 <td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt; padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman"'>用户名</span></p>
 </td>
 <td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt;border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman"'>真实姓名</span></p>
 </td>
 <td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman"'>性别</span></p>
 </td>
 </tr>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:mydb";
//连接mydb数据库
Connection con=DriverManager.getConnection (url, "", "");
try{
 Statement stmt=con.createStatement();
 //查询employee表
 ResultSet rs=stmt.executeQuery("select user_name, real_name, gender from employee ");
 while(rs.next()){
%>
 <tr>
 <td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt;border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span lang=EN-US><%=rs.getString("user_name")%></span></p>
 </td>
 <td width=189 valign=top style='width:142.05pt;border-top:none;border-left:none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'><%=rs.getString("real_name")%></span></p>
 </td>
 <td width=189 valign=top style='width:142.05pt;border-top:none;border-left:none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
 <p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'><%=rs.getString("gender")%></span></p>
 </td>
 </tr>
<%
 } // end while
 rs.close();
 stmt.close();
} finally {
 con.close();
}
%>
</table>
<p class=MsoNormal><span lang=EN-US><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
</div>
</body>
</html>

希望本文所述对大家JSP程序设计有所帮助。

(0)

相关推荐

  • JSP导出Excel文件的方法

    本文实例讲述了JSP导出Excel文件的方法.分享给大家供大家参考,具体如下: <%@page import="jxl.Workbook,com.ecc.emp.core.*,com.ecc.emp.data.*,com.ecc.emp.jdbc.ConnectionManager,jxl.format.VerticalAlignment,java.sql.*,jxl.write.*,jxl.format.UnderlineStyle,javax.sql.DataSource"%

  • JSP上传excel及excel插入至数据库的方法

    本文实例讲述了JSP上传excel及excel插入至数据库的方法.分享给大家供大家参考.具体如下: 此导入excel是与pojo绑定的,(缺点)excle表头必须是pojo的字段值 1. html页面: <form id="myform" method="post" enctype="multipart/form-data"> <table> <tr> <td></td> <td&

  • jsp页面中显示word/excel格式的文档的方法

    word页面只要在jsp头设置如下指令: 复制代码 代码如下: <%@page contentType="application/msword;charset=GBK" %> excel如下: 复制代码 代码如下: <%@page contentType="application/vnd.ms-excel;charset=GBK" %>

  • JSP实现从数据库导出数据到Excel下载的方法

    本文实例讲述了JSP实现从数据库导出数据到Excel下载的方法.分享给大家供大家参考,具体如下: 关键代码: <%@ page contentType="application/msexcel" %> <% //response.setHeader("Content-disposition","inline; filename=videos.xls"); response.setHeader("Content-disp

  • jsp利用POI生成Excel并在页面中导出的示例

    java中导出Excel有两个组件可以使用,一个是jxl,一个是POI,我这里用的是POI.导出是可以在服务器上生成文件,然后下载,也可以利用输出流直接在网页 中弹出对话框提示用户保存或下载.生成文件的方式会导致服务器中存在着垃圾文件,实现方式不太优雅,所以这里我采用的是后面直接通过输出流的方式. 1.修改WEB服务器的CONF/web.xml,添加 Xml代码 <mime-mapping> <extension>xls</extension> <mime-typ

  • jsp导出excel并支持分sheet导出的方法

    本文实例讲述了jsp导出excel并支持分sheet导出的方法.分享给大家供大家参考,具体如下: public DownloadFile exportToExcel() throws Exception{ String config_value = systemConfigService.getConfigValueByKey("Export.Xls"); logger.info("获取的导出类型为execl表格"+",每页sheet导出的行数为:&quo

  • jsp实现针对excel及word文档的打印方法

    本文实例讲述了jsp实现针对excel及word文档的打印方法.分享给大家供大家参考,具体如下: 因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式 word页面只要在jsp头设置如下指令: 复制代码 代码如下: <%@page contentType="application/msword;charset=GBK" %> excel如

  • VB.net读取Word文档属性的方法

    复制代码 代码如下: '对自定义属性进行读取         Dim Properties = SourceDoc.CustomDocumentProperties            Dim PropertyType As Type = Properties.GetType Try            Dim Authorprop = PropertyType.InvokeMember("Item", Reflection.BindingFlags.Default Or Refl

  • 利用C#代码将html样式文件与Word文档互换的方法

    一.C#代码将html样式文件转为Word文档 首先有个这样的需求,将以下网页内容下载为Word文件. html代码: <div class="modal-body"> <div style="height:600px;width:550px; margin:0 auto;"> <table style="border-collapse:separate;border-spacing:10px;width: 100%"

  • JSP生成WORD文档,EXCEL文档及PDF文档的方法

    本文实例讲述了JSP生成WORD文档,EXCEL文档及PDF文档的方法.分享给大家供大家参考,具体如下: 在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来,并以word文档的形式展现,有时许多word文档保存到数据库中的某个表的Blob字段里,服务器再把保存在Blob字段中的图片文件展现给用户.通过网上查找发现很少有关于此类的文章,现在整理起来供大家参考. 1 在client端直接生成word文档 在jsp页面上生成word文档非常简单,只需把conte

  • 使用python批量读取word文档并整理关键信息到excel表格的实例

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下所示) 方便后面建立电子数据库 从而使得其他人可以迅速地搜索到相关记录 据说"人生苦短,我用python" 所以决定用python从docx文档中提取文件头的信息 然后把信息更新到一个xls电子表格中,像下面这样(直接po结果好了) 而且点击文件路径可以直接打开对应的文件(含超链接) 代码

  • python实现word文档批量转成自定义格式的excel文档的思路及实例代码

    支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符 最近在开发一个答题类的小程序,到了录入试题进行测试的时候了,发现一个问题,试题都是word文档格式的,每份有100题左右,拿到的第一份试题,光是段落数目就有800个.而且可能有几十份这样的试题. 而word文档是没有固定格式的,想批量录入关系型数据库mysql,必须先转成excel文档.这个如果是手动一个个粘贴到excel表格,那就头大了. 我最终需要的excel文档结构是这样的:每道题独立占1行,每1列是这道题的一项内

  • Java如何获取word文档的条目化内容

    在开发Web办公系统或文档系统时,PageOffice组件是众所周知的在线处理微软word/ppt/excel文档的强大工具,它对WORD文档的各种处理在API层面进行了封装,屏蔽了Office VBA接口的复杂性,而又不失VBA的强大功能,在此要分享的正是PageOffice封装的一个很强大的功能:获取word文档的条目化内容.在一个包含了文档处理功能的办公系统里,用户出于各种原因,希望能通过程序自动分析word文档中每个章节的内容也是一种合理的需求,而PageOffice为实现此功能提供的接

  • nodejs实现一个word文档解析器思路详解

    之前项目里遇到一个需求,需要前端上传一个word文档,然后后端提取出该文档的指定位置的内容并保存.这里后端用的是nodejs,开始接到这个需求,发现无从下手,主要是没有处理过word这种类型的文档,怎么解析? Excel倒是有相关的库可以用,而且很简单 思路 搜索了好一会儿,在npm上发现了一个叫做 adm-zip 的包,这个包可以解压缩word文档,原来word文档也是可以解压缩的,之前一直不知道,通过如下代码就可以将word文档解压缩,并进一步提取内容 var admZip = requir

  • Python快速优雅的批量修改Word文档样式

    需求描述 手上现有若干份财务分析报告的Word文档,如下: 每一份Word文档中的内容如下: 为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示 步骤分析和前置知识 为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(document) - 段落(paragraph) - 文字块(run) 三级结构组成: 从需求反馈中可以看出,本质上我们需要做的就是对所有含有资金的文字块Run进行样式调整 因此,本需求的逻辑如下: 1.创建一个空文件夹(用于存放修改后的财务报告

  • php通过baihui网API实现读取word文档并展示

    项目中遇到一个小问题,想实现php 如何读取word文档,并将其内容原样显示 可以 使用API 可以看看baihui.com 的写写应用 的API 申请一个 APPKEY 就能使用,你可以看看 ... 对免费版本有限制 比如 excel 支持,可以参考我这个 appkey是我申请的,可以使用吧 ... 保存成本地的一个html文件 打开后直接使用 word 的类似 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&q

随机推荐