﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA随笔-随笔分类-tools</title><link>http://www.blogjava.net/qujingbo/category/18222.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:21:28 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:21:28 GMT</pubDate><ttl>60</ttl><item><title>excel模板检验与合并</title><link>http://www.blogjava.net/qujingbo/archive/2006/12/12/86322.html</link><dc:creator>曲静波</dc:creator><author>曲静波</author><pubDate>Tue, 12 Dec 2006 08:43:00 GMT</pubDate><guid>http://www.blogjava.net/qujingbo/archive/2006/12/12/86322.html</guid><wfw:comment>http://www.blogjava.net/qujingbo/comments/86322.html</wfw:comment><comments>http://www.blogjava.net/qujingbo/archive/2006/12/12/86322.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/qujingbo/comments/commentRss/86322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qujingbo/services/trackbacks/86322.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
				<span lang="EN-US" style="FONT-SIZE: 14pt">excel</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模板检验与合并</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为实现</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的合并，需要对上传的</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件进行格式的验证，格式主要包括表头信息的验证，为此引入模板概念，首先用户需要上传带表头信息的模板。然后由用户上传需要合并的</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，这时就需要验证将要合并的</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件是否与模板文件相符合。若符合可以合并，不符合给出提示。用户上传多个</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件后，通过模板表头文件格式合并所有</span>
				<span lang="EN-US">excel</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">该</span>
				<span lang="EN-US">jar</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包主要分为五个类，如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span>
						<o:p> </o:p>
						<br />
						<strong>
								<font face="宋体">com.boco.excel.ExcelException<o:p></o:p></font>
								<br />
						</strong>
				</span>
				<span style="FONT-SIZE: 10.5pt">
						<font face="宋体">
								<strong>自定义异常，在验证模板出错时，会抛出错误信息。供开发人员和用户使用。<span lang="EN-US"><o:p></o:p></span></strong>
						</font>
						<br />    </span>
				<br />
				<b>
						<span lang="EN-US">
								<font face="宋体">com.boco.excel.ExcelExceptionMsg<o:p></o:p></font>
								<br />
						</span>
				</b>
				<b>
						<font face="宋体">该类中全是常量，常量定义为自定义异常时提示的错误信息。<span lang="EN-US"><o:p></o:p></span></font>
						<br />    </b>
				<br />
				<b>
						<span lang="EN-US">
								<font face="宋体">com.boco.excel.ValidatorTemplate<o:p></o:p></font>
								<br />
						</span>
				</b>
				<span style="mso-bidi-font-weight: bold">
						<font face="宋体">该类主要验证模板表头格式的有效性。一般开发人员使用<span lang="EN-US">validator</span>方法就可以。具体参数说明请见<span lang="EN-US">api</span>使用说明。<span lang="EN-US"><o:p></o:p></span></font>
						<br />    </span>
				<br />
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<font face="宋体">public void validator(String excelPath, int rowSize) throws ExcelException<o:p></o:p></font>
								<br />      </span>
						<br />
				</b>
				<span style="mso-bidi-font-weight: bold">
						<font face="宋体">该方法主要验证：<span lang="EN-US"><o:p></o:p></span></font>
						<br />
				</span>
				<span lang="EN-US" style="mso-bidi-font-weight: bold">
						<font face="宋体">1</font>
				</span>
				<span style="mso-bidi-font-weight: bold">
						<font face="宋体">．判断每后一行的单元格个数要大于等于前一行的单元格个数。可以是塔型。如图一：<br /><br /><img height="122" alt="1.jpg" src="http://www.blogjava.net/images/blogjava_net/qujingbo/excelTemplateMatching/1.jpg" width="271" border="0" /><br /><br /></font>
						<font face="宋体">
								<span lang="EN-US">2</span>．判断最后一行的单元格数要与第一行的列数相等，如图一，第一行，列数是<span lang="EN-US">A</span>，<span lang="EN-US">B</span>，<span lang="EN-US">C</span>三列，为<span lang="EN-US">3</span>。而第三行最后一行的单元格数也就是说，<span lang="EN-US">A</span>格为<span lang="EN-US">1</span>，<span lang="EN-US">B</span>格为<span lang="EN-US">1</span>，<span lang="EN-US">C</span>格为<span lang="EN-US">1</span>。故相等。符合条件。</font>
						<br />
						<font face="宋体">
								<span lang="EN-US">
										<br />3</span>．判断<span lang="EN-US">sheet</span>，如<span lang="EN-US">sheet1,sheet3</span>均符合标准，而<span lang="EN-US">sheet2</span>不符合条件。则认为该模板无效。</font>
						<br />
						<font face="宋体">
								<span lang="EN-US">
										<br />4</span>．判断其中不得有空行，若有空行则不符合要求。如图二。<br /></font>
						<br />      <img height="198" alt="2.jpg" src="http://www.blogjava.net/images/blogjava_net/qujingbo/excelTemplateMatching/2.jpg" width="290" border="0" /><br />      <br /><font face="宋体">该类主要验证多个文件与模板是否匹配。开发人员主要使用以下方法：（具体参数说明见<span lang="EN-US">API</span>说明文档）</font><br /><font face="宋体">该方法主要验证：</font><br />     1.<font face="宋体">判断模板的表头列数与文件的表头列数是否相同。若不同则不符合。</font><br />   <font face="Courier New"> 2.</font><font face="宋体">判断模板表头格式的每个<span lang="EN-US">cell</span>是否与文件相符合，符合条件包括：合并单元格。</font></span>
				<span lang="EN-US">
						<font face="宋体">
								<strong>
										<br />
										<br />com.boco.excel.CombinationFileExcel<br /></strong>
						</font>
				</span>
				<font face="宋体">该类主要通过模板格式合并<span lang="EN-US">excel</span>文件<span lang="EN-US">,</span>开发人员主要使用以下方法：（具体参数说明见<span lang="EN-US">API</span>说明文档）</font>
				<br />
				<b style="mso-bidi-font-weight: normal">
						<br />
						<span lang="EN-US">
								<br />
								<font face="宋体">public void combination(String templatePath, String filePath[],String templFilePath, String newFilePath, int rowSize) throws Exception <o:p></o:p></font>
								<br />
						</span>
						<br />
				</b>
				<br />
				<font face="宋体">例如，要合并表三，表四。如图三、图四。</font>
				<br />
				<br />
				<br />
				<img height="222" alt="34.jpg" src="http://www.blogjava.net/images/blogjava_net/qujingbo/excelTemplateMatching/34.jpg" width="561" border="0" />
				<br />   <font face="宋体">最后合并内容如下：如图五</font><br />    <br />    <img height="336" alt="5.jpg" src="http://www.blogjava.net/images/blogjava_net/qujingbo/excelTemplateMatching/5.jpg" width="284" border="0" /><br /><br /><br /><font face="宋体">多个<span lang="EN-US">sheet</span>都会合并。</font><br /><span lang="EN-US"><br /></span><br /><font face="宋体"><br /><span lang="EN-US">OK!</span>附<span lang="EN-US">API</span>说明文档，<span lang="EN-US">JAR</span>包，及源码。<span lang="EN-US">com.boco.excel.test</span>包下的类有使如何使用<span lang="EN-US">API</span>的例子。</font><br /><br /><br /><br /><br />下载列表：<br /><br /><span lang="EN-US"><o:p><a href="/Files/qujingbo/jar包.rar" target="_blank">jar包.rar</a><br /><br />源码：<a href="/Files/qujingbo/project.rar">project.rar<br /></a></o:p></span></p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">
						<o:p>
								<a href="/Files/qujingbo/api(javadoc)说明文档.rar">API说明文档</a>
						</o:p>
				</span>
		</p>
		<p> </p>
		<p> </p>
<img src ="http://www.blogjava.net/qujingbo/aggbug/86322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qujingbo/" target="_blank">曲静波</a> 2006-12-12 16:43 <a href="http://www.blogjava.net/qujingbo/archive/2006/12/12/86322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>