Implement Word, Excel format report printing with JSP

xiaoxiao2021-03-06  64

Title: Using JSP to implement Word, Excel format report print

Author: Evan

Date: 2003-08-21

Because MS Word and Excel support HTML text format, you can use Word or Excel to do a template, save it as a web page, and then change the HTML to JSP, you can dynamically fill the data part, you don't have to worry hard. Adjustment format

Word page As long as the JSP head is set as follows:

<% @ Page ContentType = "Application / Msword; Charset = GBK"%>

Excel is as follows:

<% @ Page ContentType = "Application / VND.MS-Excel; Charset = GBK"%>

Using this method The client must have Office software installed, and the user will open this page directly in IE when the user is accessible.

This method advantage is that template design, convenient adjustment, no need to use complex POI or JXL technology on server-side, there is no need to use ActiveX control technology, safer, more secure, and easy to implement better printing effects on the client.

Microsoft About Server Dynamically Create Information of Office Documents (ASP Example):

http://support.microsoft.com/default.aspx?scid=kb;n-us;301044&

Simple example:

Use Word to create a document, draw forms as follows:

----------------------------

| Username | Real Name | Gender |

----------------------------

| GUEST | Passenger | Male |

----------------------------

Saved as the web page test.htm, renamed.htm to Test.jsp, modify it

Guest, passerby, male is dynamically inquiry from the database, as follows:

<% @ Page ContentType = "Application / Msword; Charset = GBK"%>

<% @ Page Import = "java.sql. *"%>

XMLns: w = "URN: Schemas-Microsoft-Com: Office: WORD"

XMLns = "http://www.w3.org/tr/rec-html40">

User Information </ Title></p> <p><! - [if gte mso 9]> <xml></p> <p><o: DocumentProperties></p> <p><o: Author> Evan Zhao </ o: Author> <o: Lastauthor> Evan Zhao </ o: Lastauthor></p> <p><o: revision> 1 </ o: revision></p> <p><o: Totaltime> 1 </ o: Totaltime></p> <p><o: create> 2003-08-20t16: 26: 00z </ o: create></p> <p><o: Lastsaved> 2003-08-20t16: 27: 00z </ o: Lastsaved></p> <p><o: pages> 1 </ o: Pages></p> <p><o: Company> Taiping </ o: Company></p> <p><o: lines> 1 </ o: lines></p> <p><o: Paragraphs> 1 </ o: paragraphs></p> <p><o: Version> 9.2812 </ o: Version></p> <p></ o: DocumentProperties></p> <p></ xml> <! [endif] -> <!- [if gte mso 9]> <xml></p> <p><W: WordDocument></p> <p><W: punctuationkerning></p> <p><W: DrawingGridverticalSpacing> 7.8 pounds </ w: DrawingGridvertageSpacing></p> <p><W: DisplayhorizontaldrawingGridevery> 0 </ w: DisplayhorizontaldrawingGridevery></p> <p><W: DisplayVerticalDrawingGridevery> 2 </ w: DisplayVerticalDrawingGridevery></p> <p><w: compatibility></p> <p><W: SpaceForul></p> <p><W: BalanceSingleBytedoubleByTewidth></p> <p><W: DonotleaveBackslashalone></p> <p><W: UltrailSpace></p> <p><w: donotexpandshiftreturn></p> <p><W: AdjustLineHeightIntable></p> <p><W: usefulnessout></p> <p></ w: Compatibility></p> <p></ w: WordDocument></p> <p></ xml> <! [endif] -></p> <p><style></p> <p><! -</p> <p>/ * Font definitions * /</p> <p>@ font-face</p> <p>{Font-Family: Song;</p> <p>Panose-1: 2 1 6 0 3 1 1 1 1 1;</p> <p>MSO-FONT-Alt: SIMSUN;</p> <p>MSO-FONT-CHARSET: 134;</p> <p>MSO-generic-font-family: auto;</p> <p>MSO-FONT-PITCH: VARIABLE;</p> <p>MSO-FONT-SIGNATURE: 3 135135232 16 0 262145 0;</p> <p>@ font-face</p> <p>{font-family: "/ @ 体";</p> <p>Panose-1: 2 1 6 0 3 1 1 1 1 1;</p> <p>MSO-FONT-CHARSET: 134;</p> <p>MSO-generic-font-family: auto;</p> <p>MSO-FONT-PITCH: VARIABLE;</p> <p>MSO-FONT-SIGNATURE: 3 135135232 16 0 262145 0;</p> <p>/ * STYLE definitions * /</p> <p>P.msonormal, li.msonormal, div.msonormal {mso-style-parent: ""</p> <p>Margin: 0cm;</p> <p>Margin-bottom: .0001pt;</p> <p>Text-align: Justify;</p> <p>Text-Justify: Inter-Ideograph;</p> <p>MSO-PAGINATION: NONE;</p> <p>FONT-SIZE: 10.5pt;</p> <p>MSO-BIDI-FONT-SIZE: 12.0pt;</p> <p>Font-Family: "Times New Roman";</p> <p>MSO-FAREAST-FONT-FAMILY: Song;</p> <p>MSO-FONT-KERNING: 1.0pt;</p> <p>/ * Page definitions * /</p> <p>@PAGE</p> <p>{MSO-PAGE-BORDER-SURROUND-HEADER: NO;</p> <p>MSO-PAGE-BORDER-SURROUND-FOOTER: NO;</p> <p>@Page Section1</p> <p>{SIZE: 595.3pt 841.9pt;</p> <p>Margin: 72.0pt 90.0pt 72.0pt 90.0pt;</p> <p>MSO-HEADER-Margin: 42.55pt;</p> <p>MSO-FOOTER-MARGIN: 49.6PT;</p> <p>MSO-Paper-Source: 0;</p> <p>Layout-grid: 15.6pt;</p> <p>Div.section1</p> <p>{Page: Section1;</p> <p>-></p> <p></ style></p> <p></ hEAD></p> <p><body lang = zh-cn style = 'tab-interval: 21.0pt; text_justify-trim: puncture'></p> <p><div class = section1 style = 'layer-grid: 15.6pt'></p> <p><table border = 1 cellspacing = 0 cellpadding = 0 style = 'border-collapse: collapse;</p> <p>Border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt '></p> <p><tr></p> <p><td width = 189 valign = top style = 'width: 142.0pt; border: solid windowtext .5pt;</p> <p>Padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span style = 'font-family: Song; MSO-ASCII-FONT-FAMILY: "Times new Roman";</p> <p>MSO-HANSI-FONT-FAMILY: "Times New Roman"> Username </ span> </ p></p> <p></ td></p> <p><TD width = 189 valign = top style = 'width: 142.05pt; border: solid windowtext .5pt;</p> <p>Border-left: none; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span style = 'font-family: Song; MSO-ASCII-FONT-FAMILY: "Times new Roman";</p> <p>MSO-HANSI-FONT-FAMILY: "Times New Roman"> Reality Name </ span> </ p> </ td></p> <p><TD width = 189 valign = top style = 'width: 142.05pt; border: solid windowtext .5pt;</p> <p>Border-left: none; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span style = 'font-family: Song; MSO-ASCII-FONT-FAMILY: "Times new Roman";</p> <p>MSO-HANSI-FONT-FAMILY: "Times New Roman"> Gender </ span> </ p></p> <p></ td></p> <p></ TR></p> <p><%</p> <p>Class.Forname ("Sun.jdbc.odbc.jdbcodbcdriver");</p> <p>String Url = "JDBC: ODBC: MYDB";</p> <p>/ / Connect the MYDB database</p> <p>Connection Con = DriverManager.getConnection (URL, "," ""</p> <p>Try {</p> <p>Statement Stmt = con.createstatement ();</p> <p>// Query the Employee table</p> <p>ResultSet RS = Stmt.executeQuery ("Select User_Name, Real_name, Gnder from Employee);</p> <p>While (rs.next ()) {</p> <p>%></p> <p><tr></p> <p><td width = 189 valign = top style = 'width: 142.0pt; border: solid windowtext .5pt;</p> <p>Border-top: none; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span lang = en-us> <% = rs.getstring ("user_name")%> </ span> </ p></p> <p></ td></p> <p><td width = 189 valign = top style = 'width: 142.05pt; border-top: none; border-left:</p> <p>None; border-bottom: solid windowtext .5pt; border-right: solid windowtext .5pt;</p> <p>MSO-BORDER-TOP-Alt: Solid WindowText .5pt; MSO-Border-Left-Alt: Solid WindowText .5pt;</p> <p>Padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span style = 'font-family: Song; MSO-ASCII-FONT-FAMILY: "Times new Roman";</p> <p>MSO-HANSI-FONT-FAMILY: "Times New Roman"> <% = rs.getstring ("real_name")%> </ span> </ p> </ td></p> <p><td width = 189 valign = top style = 'width: 142.05pt; border-top: none; border-left:</p> <p>None; border-bottom: solid windowtext .5pt; border-right: solid windowtext .5pt;</p> <p>MSO-BORDER-TOP-Alt: Solid WindowText .5pt; MSO-Border-Left-Alt: Solid WindowText .5pt;</p> <p>Padding: 0cm 5.4pt 0cm 5.4pt '></p> <p><plass = msonormal> <span style = 'font-family: Song; MSO-ASCII-FONT-FAMILY: "Times new Roman";</p> <p>MSO-HANSI-FONT-FAMILY: "Times New Roman"> <% = rs.getstring ("gender")%> </ span> </ p></p> <p></ td></p> <p></ TR></p> <p><%</p> <p>} // End while</p> <p>Rs.close ();</p> <p>Stmt.close ();</p> <p>} Finally {</p> <p>C. close ();</p> <p>}</p> <p>%></p> <p></ TABLE></p> <p><plass = msonormal> <span lang = en-us> <! [if! supportemptyparas]> <! [endif]> <o: p> </ o: p> </ span> </ p></p> <p></ div></p> <p></ body></p> <p></ html></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-86738.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="86738" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.058</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'Nv_2BmIri8sBWyYsFuUY30OBdt3DzY0Y9e_2B4E_2FDOpx8pwN8Ly3CHWdWREx_2Bv624Z28ongaVVcP678RIQP6CGFUQQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>