﻿<?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-一滴水</title><link>http://www.blogjava.net/yidishui/</link><description>java 2006年1月新开始:)</description><language>zh-cn</language><lastBuildDate>Sat, 02 May 2026 04:47:03 GMT</lastBuildDate><pubDate>Sat, 02 May 2026 04:47:03 GMT</pubDate><ttl>60</ttl><item><title>Struts 中文乱码问题 Filter解决</title><link>http://www.blogjava.net/yidishui/archive/2006/09/08/68581.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Fri, 08 Sep 2006 10:41:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/09/08/68581.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/68581.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/09/08/68581.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/68581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/68581.html</trackback:ping><description><![CDATA[<p>这个也不知道来自网上那里，自己用过了，最近整理资料记录下来</p> <p>原理很简单就是使用Filter处理设置的请求的 CharacterEncoding</p> <p>具体实现Filter</p> <div class="wlWriterSmartContent" id="C411E4BC-FA5A-4068-9F25-1AA2B5A98D76:37995dfd-83e7-4ef7-aa81-86f5866da398" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 494px; padding-top: 0px"><div style="display:block;background-color:#F7F7FF;overflow-x:scroll;width:500px;overflow-y:scroll;height:300px;"><pre><table>
	<tr>
		<td><span style="color:#0000FF">package</span> yidishui.util; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.Filter;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.FilterChain;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.FilterConfig;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.ServletException;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.ServletRequest;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> javax.servlet.ServletResponse;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">import</span> java.io.IOException; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">public</span> <span style="color:#0000FF">class</span> EncodingFilter <span style="color:#0000FF">implements</span> Filter { </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* The default character encoding to set for requests that pass through this</td>
	</tr>
	<tr>
		<td>* filter.</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">protected</span> String encoding = <span style="color:#0000FF">null</span>; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* The filter configuration object we are associated with. If this value is</td>
	</tr>
	<tr>
		<td>* null, this filter instance is not currently configured.</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">protected</span> FilterConfig filterConfig = <span style="color:#0000FF">null</span>; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* Should a character encoding specified by the client be ignored?</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">protected</span> <span style="color:#0000FF">boolean</span> ignore = <span style="color:#0000FF">true</span>; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">// --------------------------------------------------------- Public Methods </span></td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* Take this filter out of service.</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">public</span> <span style="color:#0000FF">void</span> destroy() { </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.encoding = <span style="color:#0000FF">null</span>;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.filterConfig = <span style="color:#0000FF">null</span>; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td>} </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* Select and set (if specified) the character encoding to be used to</td>
	</tr>
	<tr>
		<td>* interpret request parameters for this request.</td>
	</tr>
	<tr>
		<td>*</td>
	</tr>
	<tr>
		<td>* @param request The servlet request we are processing</td>
	</tr>
	<tr>
		<td>* @param response The servlet response we are creating</td>
	</tr>
	<tr>
		<td>* @param chain The filter chain we are processing</td>
	</tr>
	<tr>
		<td>* @throws IOException if an input/output error occurs</td>
	</tr>
	<tr>
		<td>* @throws ServletException if a servlet error occurs</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">public</span> <span style="color:#0000FF">void</span> doFilter(ServletRequest request, ServletResponse response,</td>
	</tr>
	<tr>
		<td>FilterChain chain) <span style="color:#0000FF">throws</span> IOException, ServletException { </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">// Conditionally select and set the character encoding to be used</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">if</span> (ignore || (request.getCharacterEncoding() == <span style="color:#0000FF">null</span>)) {</td>
	</tr>
	<tr>
		<td>String encoding = selectEncoding(request);</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">if</span> (encoding != <span style="color:#0000FF">null</span>)</td>
	</tr>
	<tr>
		<td>request.setCharacterEncoding(encoding);</td>
	</tr>
	<tr>
		<td>} </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">// Pass control on to the next filter</span></td>
	</tr>
	<tr>
		<td>chain.doFilter(request, response); </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td>} </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* Place this filter into service.</td>
	</tr>
	<tr>
		<td>*</td>
	</tr>
	<tr>
		<td>* @param filterConfig The filter configuration object</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">public</span> <span style="color:#0000FF">void</span> init(FilterConfig filterConfig) <span style="color:#0000FF">throws</span> ServletException { </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.filterConfig = filterConfig;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.encoding = filterConfig.getInitParameter(&quot;<span style="color:#8B0000">encoding</span>&quot;);</td>
	</tr>
	<tr>
		<td>String value = filterConfig.getInitParameter(&quot;<span style="color:#8B0000">ignore</span>&quot;);</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">if</span> (value == <span style="color:#0000FF">null</span>)</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.ignore = <span style="color:#0000FF">true</span>;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">else</span> <span style="color:#0000FF">if</span> (value.equalsIgnoreCase(&quot;<span style="color:#8B0000">true</span>&quot;))</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.ignore = <span style="color:#0000FF">true</span>;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">else</span> <span style="color:#0000FF">if</span> (value.equalsIgnoreCase(&quot;<span style="color:#8B0000">yes</span>&quot;))</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.ignore = <span style="color:#0000FF">true</span>;</td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">else</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">this</span>.ignore = <span style="color:#0000FF">false</span>; </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td>} </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">// ------------------------------------------------------ Protected Methods </span></td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#008000">/**</td>
	</tr>
	<tr>
		<td>* Select an appropriate character encoding to be used, based on the</td>
	</tr>
	<tr>
		<td>* characteristics of the current request and/or filter initialization</td>
	</tr>
	<tr>
		<td>* parameters. If no character encoding should be set, return</td>
	</tr>
	<tr>
		<td>* &lt;code&gt;null&lt;/code&gt;.</td>
	</tr>
	<tr>
		<td>* &lt;p/&gt;</td>
	</tr>
	<tr>
		<td>* The default implementation unconditionally returns the value configured</td>
	</tr>
	<tr>
		<td>* by the &lt;strong&gt;encoding&lt;/strong&gt; initialization parameter for this</td>
	</tr>
	<tr>
		<td>* filter.</td>
	</tr>
	<tr>
		<td>*</td>
	</tr>
	<tr>
		<td>* @param request The servlet request we are processing</td>
	</tr>
	<tr>
		<td>* @return return encoding</td>
	</tr>
	<tr>
		<td>*/</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">protected</span> String selectEncoding(ServletRequest request) { </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">return</span> (<span style="color:#0000FF">this</span>.encoding); </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td>} </td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td>}<span style="color:#008000">// EOC </span></td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td></td>
	</tr>
</table>
</pre></div></div>&nbsp;
<p>2.具体web.xml配置 </p>
<div class="wlWriterSmartContent" id="C411E4BC-FA5A-4068-9F25-1AA2B5A98D76:ef18ce42-83bb-4951-9fda-2785ab72b3f7" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><div style="display:block;background-color:#F7F7FF;overflow-x:scroll;width:500px;overflow-y:scroll;height:200px;"><pre><table>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">filter</span><span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">filter</span>-<span style="color:#FF0000">name</span><span style="color:#0000FF">&gt;</span>EncodingFilter<span style="color:#0000FF">&lt;/</span><span style="color:#800000">filter</span>-name<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">filter</span>-<span style="color:#FF0000">class</span><span style="color:#0000FF">&gt;</span>yidishui.util.EncodingFilter<span style="color:#0000FF">&lt;/</span><span style="color:#800000">filter</span>-class<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">init</span>-<span style="color:#FF0000">param</span><span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">param</span>-<span style="color:#FF0000">name</span><span style="color:#0000FF">&gt;</span>encoding<span style="color:#0000FF">&lt;/</span><span style="color:#800000">param</span>-name<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">param</span>-<span style="color:#FF0000">value</span><span style="color:#0000FF">&gt;</span>UTF-8<span style="color:#0000FF">&lt;/</span><span style="color:#800000">param</span>-value<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;/</span><span style="color:#800000">init</span>-param<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">init</span>-<span style="color:#FF0000">param</span><span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">param</span>-<span style="color:#FF0000">name</span><span style="color:#0000FF">&gt;</span>ignore<span style="color:#0000FF">&lt;/</span><span style="color:#800000">param</span>-name<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">param</span>-<span style="color:#FF0000">value</span><span style="color:#0000FF">&gt;</span>yes<span style="color:#0000FF">&lt;/</span><span style="color:#800000">param</span>-value<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;/</span><span style="color:#800000">init</span>-param<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;/</span><span style="color:#800000">filter</span><span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">filter</span>-<span style="color:#FF0000">mapping</span><span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">filter</span>-<span style="color:#FF0000">name</span><span style="color:#0000FF">&gt;</span>EncodingFilter<span style="color:#0000FF">&lt;/</span><span style="color:#800000">filter</span>-name<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;</span><span style="color:#800000">url</span>-<span style="color:#FF0000">pattern</span><span style="color:#0000FF">&gt;</span>/*<span style="color:#0000FF">&lt;/</span><span style="color:#800000">url</span>-pattern<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td><span style="color:#0000FF">&lt;/</span><span style="color:#800000">filter</span>-mapping<span style="color:#0000FF">&gt;</span></td>
	</tr>
	<tr>
		<td></td>
	</tr>
</table>
</pre></div></div><img src ="http://www.blogjava.net/yidishui/aggbug/68581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-09-08 18:41 <a href="http://www.blogjava.net/yidishui/archive/2006/09/08/68581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>An Introduction To JSTL</title><link>http://www.blogjava.net/yidishui/archive/2006/08/21/64835.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Mon, 21 Aug 2006 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/08/21/64835.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/64835.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/08/21/64835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/64835.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/64835.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: from:http://www.learntechnology.net/rama-jstl.do---------------------------------------An Introduction To JSTL																																																										By R.S.RAMASWA...&nbsp;&nbsp;<a href='http://www.blogjava.net/yidishui/archive/2006/08/21/64835.html'>阅读全文</a><img src ="http://www.blogjava.net/yidishui/aggbug/64835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-08-21 17:20 <a href="http://www.blogjava.net/yidishui/archive/2006/08/21/64835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKEditor 在JSP中使用</title><link>http://www.blogjava.net/yidishui/archive/2006/08/17/64121.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Thu, 17 Aug 2006 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/08/17/64121.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/64121.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/08/17/64121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/64121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/64121.html</trackback:ping><description><![CDATA[FCKEditor 在JSP中使用:<br />1.下载FCKEditor2.3.1<br />2.下载FCKeditor.Java<br />====================<br />清理FCKEdior:<br />  1&gt;删除 _samples 里面是例子 _testcases 测试 要更详细高级使用查例子和测试,还有一下文件不用的删除<br />  2&gt;删除 editor\_source 可能是源代码把,没有仔细研究<br />  3&gt; editor\filemanager\browser\default\connectors 删除,使用的是servlet来操作的(使用其它语言的话就要根据情况处理了)<br />     editor\filemanager\upload 删除,同样使用的是servlet<br />  4&gt;editor\lang 语言文件,根据具体应用处理<br />  5&gt;editor\skins  删除不是用的skins<br />====================<br />基本使用:<br />1&gt;把FCKEdior拷贝到根目录<br />2&gt;拷贝FCKeditor.Java 例子里面的FCKeditor-2.3.jar文件<br />3&gt;修改fckconfig.js<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">  FCKConfig.DefaultLanguage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> 'zh</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">cn' 默认语言<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  FCKConfig.ToolbarSets[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Default</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">] 设置工具栏<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  FCKConfig.ContextMenu 设置上下文菜单<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>  下面还有好多,可以根据具体情况修改<br />4&gt;jsp页面使用:<br /> 拷贝一个例子就可以了.<br /> 说明:oFCKeditor.setBasePath("FCKeditor/");这个路径的根据你的具体路径变化<br />=====================<br />支持上传功能<br />1&gt;添加:commons-fileupload.jar<br />2&gt;修改Web.xml 具体在FCKeditor.Java有例子<br /> 说明:baseDir上传文件保存路径<br />      SimpleUploader下的 enabled 是否开启上传功能<br />      &lt;url-pattern&gt; 根据具体应用进行修改<br />3&gt;修改:fckconfig.js<br /> 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">FCKConfig.LinkBrowserURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser.html</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Connector</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">connectors</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">jsp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">connector';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> FCKConfig.ImageBrowserURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser.html</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Image</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Connector</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">connectors</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">jsp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">connector';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> FCKConfig.FlashBrowserURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">browser.html</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Flash</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Connector</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Connector</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">connectors</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">jsp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">connector';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> FCKConfig.LinkUploadURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">upload</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">simpleuploader</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">File';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> FCKConfig.ImageUploadURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">upload</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">simpleuploader</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Image' ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> FCKConfig.FlashUploadURL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FCKConfig.BasePath </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> 'filemanager</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">upload</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">simpleuploader</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Flash' ;</span></div><br /> <br /> 说明:要和web.xml 的 url-pattern 相对应,Type=*** 要对应<br /><br />完成!<img src ="http://www.blogjava.net/yidishui/aggbug/64121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-08-17 14:25 <a href="http://www.blogjava.net/yidishui/archive/2006/08/17/64121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ibtis基本配置--[添加ibatis Dao支持]</title><link>http://www.blogjava.net/yidishui/archive/2006/07/19/59024.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Wed, 19 Jul 2006 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/07/19/59024.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/59024.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/07/19/59024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/59024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/59024.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 基本配置见上篇一.添加配置文件dao.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!DOCTYPE daoConfig PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN" "http://ibatis.apache.org/dtd/dao-2.dtd"&gt;&lt;da...&nbsp;&nbsp;<a href='http://www.blogjava.net/yidishui/archive/2006/07/19/59024.html'>阅读全文</a><img src ="http://www.blogjava.net/yidishui/aggbug/59024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-07-19 17:06 <a href="http://www.blogjava.net/yidishui/archive/2006/07/19/59024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ibatis基本配置---[环境搭建]</title><link>http://www.blogjava.net/yidishui/archive/2006/07/19/59021.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Wed, 19 Jul 2006 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/07/19/59021.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/59021.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/07/19/59021.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/59021.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/59021.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实现目的：ibatis基本环紧架设，完成对Person表的基本操作.数据库：SqlServer表：Person																Person.sql																Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighligh...&nbsp;&nbsp;<a href='http://www.blogjava.net/yidishui/archive/2006/07/19/59021.html'>阅读全文</a><img src ="http://www.blogjava.net/yidishui/aggbug/59021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-07-19 16:54 <a href="http://www.blogjava.net/yidishui/archive/2006/07/19/59021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读取资源文件</title><link>http://www.blogjava.net/yidishui/archive/2006/07/18/58841.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Tue, 18 Jul 2006 12:17:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/07/18/58841.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/58841.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/07/18/58841.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/58841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/58841.html</trackback:ping><description><![CDATA[database.properties<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">driver=org.hsqldb.jdbcDriver<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />url=jdbc:hsqldb:mem:jpetstore<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />username=sa<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />password=</span></div><br />java代码<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      <span style="COLOR: #000000">Properties props </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Resources.getResourceAsProperties(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">properties/database.properties</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      String url </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> props.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">url</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      String driver </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> props.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">driver</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      String username </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> props.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">username</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      String password </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> props.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">password</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div><br /><img src ="http://www.blogjava.net/yidishui/aggbug/58841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-07-18 20:17 <a href="http://www.blogjava.net/yidishui/archive/2006/07/18/58841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate Hql 不支持中文问题！！</title><link>http://www.blogjava.net/yidishui/archive/2006/02/19/31532.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Sun, 19 Feb 2006 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/02/19/31532.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/31532.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/02/19/31532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/31532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/31532.html</trackback:ping><description><![CDATA[<SPAN class=postbody><FONT size=2>&nbsp;&nbsp;&nbsp;hibernate3.0.2中执行如下的： <BR><SPAN style="FONT-WEIGHT: bold">from Persion p where p.name='张三'</SPAN>log信息,'张三'在这条hsql转成sql的时候变成了乱码<BR><BR>解决方法：升级到 Hibernate3.1 rc2 ! 只需要替换 hibernate3.jar 文件就可以了!</FONT></SPAN><img src ="http://www.blogjava.net/yidishui/aggbug/31532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-02-19 18:16 <a href="http://www.blogjava.net/yidishui/archive/2006/02/19/31532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI问题记录</title><link>http://www.blogjava.net/yidishui/archive/2006/02/15/30725.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Tue, 14 Feb 2006 17:51:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/02/15/30725.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/30725.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/02/15/30725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/30725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/30725.html</trackback:ping><description><![CDATA[<P>问题：HSSFSheet sheet1 = wb.createSheet("中文乱码");<BR>时间：2006-2-10<BR>解决方法：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">HSSFSheet&nbsp;sheet&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;wb.createSheet();</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;建立新的sheet对象</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wb.setSheetName(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">学生基本信息</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000"><FONT color=#ff0000>1</FONT></SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV>
<P><FONT color=#a52a2a>*********************************************</FONT></P><img src ="http://www.blogjava.net/yidishui/aggbug/30725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-02-15 01:51 <a href="http://www.blogjava.net/yidishui/archive/2006/02/15/30725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsf  Hssf  创建并下载 M$  Excel</title><link>http://www.blogjava.net/yidishui/archive/2006/01/21/28851.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Fri, 20 Jan 2006 18:29:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/01/21/28851.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/28851.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/01/21/28851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/28851.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/28851.html</trackback:ping><description><![CDATA[<P>在jsf中通过FacesContext访问上下文；<BR>Hssf通过 HSSFWorkbook 向输出流写入；<BR>具体代码：<BR><BR>Bean：</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG id=Codehighlighter1_22_757_Open_Image onclick="this.style.display='none'; Codehighlighter1_22_757_Open_Text.style.display='none'; Codehighlighter1_22_757_Closed_Image.style.display='inline'; Codehighlighter1_22_757_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_22_757_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_22_757_Closed_Text.style.display='none'; Codehighlighter1_22_757_Open_Image.style.display='inline'; Codehighlighter1_22_757_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;TestBean&nbsp;</SPAN><SPAN id=Codehighlighter1_22_757_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_22_757_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_51_755_Open_Image onclick="this.style.display='none'; Codehighlighter1_51_755_Open_Text.style.display='none'; Codehighlighter1_51_755_Closed_Image.style.display='inline'; Codehighlighter1_51_755_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_51_755_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_51_755_Closed_Text.style.display='none'; Codehighlighter1_51_755_Open_Image.style.display='inline'; Codehighlighter1_51_755_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;action()&nbsp;</SPAN><SPAN id=Codehighlighter1_51_755_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_51_755_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFWorkbook&nbsp;wb&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;HSSFWorkbook();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FacesContext&nbsp;context</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">FacesContext.getCurrentInstance();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse&nbsp;response&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(HttpServletResponse)&nbsp;context.getExternalContext().getResponse();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.reset();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">application/ms-excel</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_363_552_Open_Image onclick="this.style.display='none'; Codehighlighter1_363_552_Open_Text.style.display='none'; Codehighlighter1_363_552_Closed_Image.style.display='inline'; Codehighlighter1_363_552_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_363_552_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_363_552_Closed_Text.style.display='none'; Codehighlighter1_363_552_Open_Image.style.display='inline'; Codehighlighter1_363_552_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_363_552_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_363_552_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Content-disposition</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">attachment;filename=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;String(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">下载Excel.xls</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">.getBytes(),</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">iso-8859-1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">));<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wb.write(response.getOutputStream());<BR><IMG id=Codehighlighter1_575_666_Open_Image onclick="this.style.display='none'; Codehighlighter1_575_666_Open_Text.style.display='none'; Codehighlighter1_575_666_Closed_Image.style.display='inline'; Codehighlighter1_575_666_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_575_666_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_575_666_Closed_Text.style.display='none'; Codehighlighter1_575_666_Open_Image.style.display='inline'; Codehighlighter1_575_666_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e1)&nbsp;</SPAN><SPAN id=Codehighlighter1_575_666_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_575_666_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1.printStackTrace();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FacesContext.getCurrentInstance().responseComplete();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>以上只是一个空的简单的Excel 具体怎么创建符合项目要求的参看：HSSF GUIDE！<BR>faces-config.xml:<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">managed-bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">managed-bean-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">managed-bean-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">managed-bean-class</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">yds.study.web.TestBean</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">managed-bean-class</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">managed-bean-scope</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">session</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">managed-bean-scope</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">managed-bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>jsp：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">f:view</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">h:form</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">h:commandButton&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="button"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;value</SPAN><SPAN style="COLOR: #0000ff">="下载"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;rendered</SPAN><SPAN style="COLOR: #0000ff">="true"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action</SPAN><SPAN style="COLOR: #0000ff">="#{test123.action}"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">h:form</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">f:view</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV><BR>ok这样就可以了;)<img src ="http://www.blogjava.net/yidishui/aggbug/28851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-01-21 02:29 <a href="http://www.blogjava.net/yidishui/archive/2006/01/21/28851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jakata Poi HSSF：纯Java的Excel解决方案  [zz]</title><link>http://www.blogjava.net/yidishui/archive/2006/01/20/28776.html</link><dc:creator>一滴水</dc:creator><author>一滴水</author><pubDate>Fri, 20 Jan 2006 05:52:00 GMT</pubDate><guid>http://www.blogjava.net/yidishui/archive/2006/01/20/28776.html</guid><wfw:comment>http://www.blogjava.net/yidishui/comments/28776.html</wfw:comment><comments>http://www.blogjava.net/yidishui/archive/2006/01/20/28776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yidishui/comments/commentRss/28776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yidishui/services/trackbacks/28776.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 微软在桌面系统上的成功，令我们不得不大量使用它的办公产品，如：Word，Excel。时至今日，它的源代码仍然不公开已封锁了我们的进一步应用和开发。然而在要求更高的服务器领域，微软本身的产品移植性不好，性能不佳。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在我们实际的开发中，表现层的解决方案虽然有多样，但是IE浏览器已成为最多人使用的浏览器，因为大家都用Windows。在企业办公系统中，常常有客户这样子要求：你要把我们的报表直接用Excel打开。<BR><BR>或者是：我们已经习惯用Excel打印。这样子如果用.net开发是没有问题的，但是有J2EE这个比.net更有前途的开放式的开发环境，难道我为了解决打印的要求去另写客户端的控件？或者在服务器端使用本地代码？第一种方案的问题是关键数据的处理有时候不能在客户端做，第2种方案的问题是牺牲了代码的可移植性和稳定性。如果让客户端只负责处理生成好的报表，那将是一种诱人的选择。<BR><BR>Apache的Jakata项目的POI子项目，目标是处理ole2对象。目前比较成熟的是HSSF接口，处理MS&nbsp;Excel（97-2002）对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西，而是真正的Excel对象，你可以控制一些属性如sheet,cell等等。<BR><BR>这是一个年轻的项目，所以象HDF这样直接支持Word对象的好东西仍然在设计中。其它支持word格式的纯Java方案还有itext，不过也是仍在奋斗中。但是HSSF已经成熟到能够和足够我们使用了。<BR><BR>其实，从开发历史的角度讲，在80年代中期starOffice的原作者在德国成立了StarOffice&nbsp;suite公司，然后到1999年夏天starOffice被sun收购，再到2000年6月starOffice5.2的发布；并且从starOffice6.0开始，starOffice建立在OpenOffice的api的基础上，这个公开代码的office项目已经进行了很长的时间。虽然那是由C++写的，但是POI的代码部分也是由openOffice改过来的。所以，应该对POI充满足够的信心。国内已经有部分公司在他们的办公自动化等Web项目中使用poi了，如日恒的ioffice，海泰的HTOffice等。<BR><BR>Java当初把核心处理设成Unicode，带来的好处是另代码适应了多语言环境。然而由于老外的英语只有26个字母，有些情况下，一些程序员用8位的byte处理，一不小心就去掉了CJK的高位。或者是由于习惯在程序中采用硬编码，还有多种原因，使得许多Java应用在CJK的处理上很烦恼。还好在POI&nbsp;HSSF中考虑到这个问题，可以设置encoding为双字节。<BR><BR>POI可以到www.apache.org下载到。编译好的jar主要有这样4个：poi包,poi&nbsp;Browser包,poi&nbsp;hdf包,poi&nbsp;hssf例程包。实际运行时，需要有poi包就可以了。<BR><BR>如果用Jakarta&nbsp;ant编译和运行，下载apache&nbsp;Jakarta&nbsp;POI的release中的src包，它里面已经为你生成好了build文件了。只要运行ant就可以了(ant&nbsp;的安装和使用在此不说了)。如果是用Jbuilder&nbsp;运行，请在新建的项目中加入poi包。<BR><BR>以Jbuilder6为例，选择Tools菜单项的config&nbsp;libraries...选项，新建一个lib。在弹出的菜单中选择poi包，如这个jakarta-poi-1.5.1-final-20020820.jar，把poi添加到jbuilder中。然后，右键点击你的项目，在project的properties菜单中path的required&nbsp;Libraries中，点add，添加刚才加入到jbuilder中的poi到你现在的项目中。<BR><BR>如果你仅仅是为了熟悉POI&nbsp;hssf的使用，可以直接看POI的samples包中的源代码，并且运行它。hssf的各种对象都有例程的介绍。hssf提供的例程在org.apache.poi.hssf.usermodel.examples包中，共有14个，生成的目标xls都是workbook.xls。如果你想看更多的例程，可以参考hssf的Junit&nbsp;test&nbsp;cases，在poi的包的源代码中有。hssf都有测试代码。<BR>这里只对部分例程的实现做介绍。<BR><BR>HSSF提供给用户使用的对象在org.apache.poi.hssf.usermodel包中,主要部分包括Excell对象，样式和格式，还有辅助操作。有以下几种对象：<BR><BR>HSSFWorkbook&nbsp;excell的文档对象<BR><BR>HSSFSheet&nbsp;excell的表单<BR><BR>HSSFRow&nbsp;excell的行<BR><BR>HSSFCell&nbsp;excell的格子单元<BR><BR>HSSFFont&nbsp;excell字体<BR><BR>HSSFName&nbsp;名称<BR><BR>HSSFDataFormat&nbsp;日期格式<BR><BR>在poi1.7中才有以下2项：<BR><BR>HSSFHeader&nbsp;sheet头<BR><BR>HSSFFooter&nbsp;sheet尾<BR><BR>和这个样式<BR><BR>HSSFCellStyle&nbsp;cell样式<BR><BR>辅助操作包括<BR><BR>HSSFDateUtil&nbsp;日期<BR><BR>HSSFPrintSetup&nbsp;打印<BR><BR>HSSFErrorConstants&nbsp;错误信息表<BR><BR>仔细看org.apache.poi.hssf包的结构，不难发现HSSF的内部实现遵循的是MVC模型。<BR><BR>这里我用Rose把org.apache.poi.hssf.usermodel包中的对象反向导入并根据相互关系作了整理，详见下面两图：<BR><BR><BR><BR><BR>
<DIV align=center><A href="http://tech.ccidnet.com/pub/attachment/2005/7/470489.jpg" target=_blank><IMG src="http://tech.ccidnet.com/pub/attachment/2005/7/470489.jpg" onload="if(this.width>screen.width/2)this.style.width=screen.width/2;" border=0></A></DIV><BR><BR><BR>
<DIV align=center>图1&nbsp;基本对象</DIV><BR><BR><BR>从中不难可以发现每一个基本对象都关联了一个Record对象。Record对象是一个参考Office格式的相关记录。&nbsp;<BR><BR><BR>
<DIV align=center><A href="http://tech.ccidnet.com/pub/attachment/2005/7/470491.jpg" target=_blank><IMG src="http://tech.ccidnet.com/pub/attachment/2005/7/470491.jpg" onload="if(this.width>screen.width/2)this.style.width=screen.width/2;" border=0></A></DIV><BR><BR><BR>
<DIV align=center>图2&nbsp;HSSFWorkbook</DIV><BR><BR><BR>HSSFWorkbook即是一个Excell对象。这幅类图体现的是HSSFWorkbook和基本对象的相互关系。可见，许多对象中也建立了Workbook的引用。还需要注意的是在HSSFWorkbook和HSSFSheet中建立了log机制POILogger，而且POILogger也是使用apache&nbsp;Log4J实现的。<BR><BR>先看poi的examples包中提供的最简单的例子，建立一个空xls文件。<BR><BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.poi.hssf.usermodel.HSSFWorkbook;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.FileOutputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.IOException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;NewWorkbook<BR><IMG id=Codehighlighter1_137_391_Open_Image onclick="this.style.display='none'; Codehighlighter1_137_391_Open_Text.style.display='none'; Codehighlighter1_137_391_Closed_Image.style.display='inline'; Codehighlighter1_137_391_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_137_391_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_137_391_Closed_Text.style.display='none'; Codehighlighter1_137_391_Open_Image.style.display='inline'; Codehighlighter1_137_391_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_137_391_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_137_391_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)</SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;IOException<BR><IMG id=Codehighlighter1_196_389_Open_Image onclick="this.style.display='none'; Codehighlighter1_196_389_Open_Text.style.display='none'; Codehighlighter1_196_389_Closed_Image.style.display='inline'; Codehighlighter1_196_389_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_196_389_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_196_389_Closed_Text.style.display='none'; Codehighlighter1_196_389_Open_Image.style.display='inline'; Codehighlighter1_196_389_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_196_389_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_196_389_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFWorkbook&nbsp;wb&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;HSSFWorkbook();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新HSSFWorkbook对象</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">FileOutputStream&nbsp;fileOut&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;FileOutputStream(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">workbook.xls</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">）;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>wb.write(fileOut);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">把Workbook对象输出到文件workbook.xls中</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">fileOut.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR><BR><BR>通过这个例子，我们建立的是一个空白的xls文件（不是空文件）。在此基础上，我们可以进一步看其它的例子。&nbsp;<BR><BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.poi.hssf.usermodel.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.FileOutputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.IOException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;CreateCells<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_130_1454_Open_Image onclick="this.style.display='none'; Codehighlighter1_130_1454_Open_Text.style.display='none'; Codehighlighter1_130_1454_Closed_Image.style.display='inline'; Codehighlighter1_130_1454_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_130_1454_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_130_1454_Closed_Text.style.display='none'; Codehighlighter1_130_1454_Open_Image.style.display='inline'; Codehighlighter1_130_1454_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_130_1454_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_130_1454_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;IOException<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_193_1451_Open_Image onclick="this.style.display='none'; Codehighlighter1_193_1451_Open_Text.style.display='none'; Codehighlighter1_193_1451_Closed_Image.style.display='inline'; Codehighlighter1_193_1451_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_193_1451_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_193_1451_Closed_Text.style.display='none'; Codehighlighter1_193_1451_Open_Image.style.display='inline'; Codehighlighter1_193_1451_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_193_1451_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_193_1451_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFWorkbook&nbsp;wb&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;HSSFWorkbook();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新HSSFWorkbook对象</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFSheet&nbsp;sheet&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;wb.createSheet(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">new&nbsp;sheet</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">）;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新的sheet对象<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;Create&nbsp;a&nbsp;row&nbsp;and&nbsp;put&nbsp;some&nbsp;cells&nbsp;in&nbsp;it.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">Rows&nbsp;are&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;based.<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFRow&nbsp;row&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sheet.createRow((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新行<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;Create&nbsp;a&nbsp;cell&nbsp;and&nbsp;put&nbsp;a&nbsp;value&nbsp;in&nbsp;it.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFCell&nbsp;cell&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新cell</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>cell.setCellvalue(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell的整数类型的值<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;Or&nbsp;do&nbsp;it&nbsp;on&nbsp;one&nbsp;line.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">).setCellvalue(</SPAN><SPAN style="COLOR: #000000">1.2</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell浮点类型的值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">).setCellvalue(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">）;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell字符类型的值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">).setCellvalue(</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell布尔类型的值&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFCellStyle&nbsp;cellStyle&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;wb.createCellStyle();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立新的cell样式</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>cellStyle.setDataFormat<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>(HSSFDataFormat.getFormat(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">m/d/yy&nbsp;h:mm</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">））;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell样式为定制的日期格式</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFCell&nbsp;dCell&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>dCell.setCellvalue(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Date());<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell为日期类型的值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>dCell.setCellStyle(cellStyle);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置该cell日期的显示格式</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>HSSFCell&nbsp;csCell&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">5</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>csCell.setEncoding(HSSFCell.ENCODING_UTF_16);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置cell编码解决中文高位字节截断</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>csCell.setCellvalue(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">中文测试_Chinese&nbsp;Words&nbsp;Test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">）;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置中西文结合字符串</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>row.createCell((</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">6</SPAN><SPAN style="COLOR: #000000">).setCellType<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>(HSSFCell.CELL_TYPE_ERROR);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">建立错误cell<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;Write&nbsp;the&nbsp;output&nbsp;to&nbsp;a&nbsp;file</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>FileOutputStream&nbsp;fileOut&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;FileOutputStream(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">workbook.xls</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">）;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>wb.write(fileOut);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>fileOut.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR><BR><BR><BR>我稍微修改了原来的examples包中的CreateCells类写了上面的功能测试类。通过这个例子，我们可以清楚的看到xls文件从大到小包括了HSSFWorkbook&nbsp;HSSFSheet&nbsp;HSSFRow&nbsp;HSSFCell这样几个对象。我们可以在cell中设置各种类型的值。&nbsp;<BR><BR>尤其要注意的是如果你想正确的显示非欧美的字符时，尤其象中日韩这样的语言，必须设置编码为16位的即是HSSFCell.ENCODING_UTF_16，才能保证字符的高8位不被截断而引起编码失真形成乱码。&nbsp;<BR><BR>其他测试可以通过参考examples包中的测试例子掌握poi的详细用法，包括字体的设置，cell大小和低纹的设置等。需要注意的是POI是一个仍然在完善中的公开代码的项目，所以有些功能正在不断的扩充。&nbsp;<BR><BR>如HSSFSheet的getFooter()&nbsp;getHeader()和setFooter(HSSFFooter&nbsp;hsf)&nbsp;setHeader(HSSFHeader&nbsp;hsh)是在POI1.7中才有的，而POI1.5中就没有。运行测试熟悉代码或者使用它做项目时请注意POI的版本。&nbsp;<BR><BR>另外需要注意的是HSSF也有它的对xls基于事件的解析。可以参考例程中的EventExample.java。它通过实现HSSFListener完成从普通流认知Xls中包含的内容，在apache&nbsp;Cocoon中的org.apache.cocoon.serialization.HSSFSerializer中用到了这个解析。因为Cocoon2是基于事件的，所以POI为了提供快速的解析也提供了相应的事件。当然我们自己也可以实现这个事件接口。&nbsp;<BR><BR>因为POI还不是一个足够成熟的项目，所以有必要做进一步的开发和测试。但是它已经为我们用纯Java操作ole2对象提供了可能，而且克服了ole对象调用的缺陷，提供了服务器端的Excel解决方案。<BR><img src ="http://www.blogjava.net/yidishui/aggbug/28776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yidishui/" target="_blank">一滴水</a> 2006-01-20 13:52 <a href="http://www.blogjava.net/yidishui/archive/2006/01/20/28776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>