﻿<?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-&lt;font color="red"&gt;JRen&lt;/font&gt;&lt;font color="lightgreen"&gt;大鹏一曰同风起，扶摇直上九万里&lt;/font&gt;-随笔分类-POI</title><link>http://www.blogjava.net/liaojiyong/category/27328.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 14 Nov 2007 19:31:03 GMT</lastBuildDate><pubDate>Wed, 14 Nov 2007 19:31:03 GMT</pubDate><ttl>60</ttl><item><title>POI操作Excel文档－中级篇（转）</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160640.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 14 Nov 2007 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160640.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/160640.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/160640.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/160640.html</trackback:ping><description><![CDATA[<div style="margin-top: 10px; margin-left: 15px; overflow: auto">
<table width="100%">
    <tbody>
        <tr>
            <td>
            <p><strong>1、遍历workbook</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span class="comment">//&nbsp;load源文件 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>POIFSFileSystem&nbsp;fs&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;POIFSFileSystem(</span><span class="keyword">new</span><span>&nbsp;FileInputStream(filePath)); &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>HSSFWorkbook&nbsp;wb&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFWorkbook(fs); &nbsp;&nbsp;</span></span></li>
                <li class=""><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;i&nbsp;&lt;&nbsp;wb.getNumberOfSheets();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFSheet&nbsp;sheet&nbsp;=&nbsp;wb.getSheetAt(i); &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;sheet.getFirstRowNum();&nbsp;i&nbsp;&lt;&nbsp;sheet.getLastRowNum();&nbsp;i&nbsp;++)&nbsp;{ &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFRow&nbsp;row&nbsp;=&nbsp;sheet.getRow(i); &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(row&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>)&nbsp;{ &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。操作} &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
                <li class=""><span class="comment">//&nbsp;目标文件 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>FileOutputStream&nbsp;fos&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;FileOutputStream(objectPath); &nbsp;&nbsp;</span></span></li>
                <li class=""><span class="comment">//写文件 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>swb.write(fos); &nbsp;&nbsp;</span></li>
                <li class=""><span>fos.close();&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong>2、得到列和单元格</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>HSSFRow&nbsp;row&nbsp;=&nbsp;sheet.getRow(i); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>HSSFCell&nbsp;cell&nbsp;=&nbsp;row.getCell((</span><span class="keyword">short</span><span>)&nbsp;j);&nbsp;&nbsp;</span></span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong>3、设置sheet名称和单元格内容为中文</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>wb.setSheetName(n,&nbsp;</span><span class="string">"中文"</span><span>,HSSFCell.ENCODING_UTF_16);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>cell.setEncoding((</span><span class="keyword">short</span><span>)&nbsp;</span><span class="number">1</span><span>); &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>cell.setCellValue(</span><span class="string">"中文"</span><span>);&nbsp;&nbsp;</span></span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong>4、单元格内容未公式或数值，可以这样读写</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <ol class="dp-j">
                <li class="alt"><span><span>cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>cell.getNumericCellValue()&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong><br />
            5、设置列宽、行高</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>sheet.setColumnWidth((</span><span class="keyword">short</span><span>)column,(</span><span class="keyword">short</span><span>)width); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>row.setHeight((</span><span class="keyword">short</span><span>)height);&nbsp;&nbsp;</span></span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong><br />
            6、添加区域，合并单元格</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>Region&nbsp;region&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Region((</span><span class="keyword">short</span><span>)rowFrom,(</span><span class="keyword">short</span><span>)columnFrom,(</span><span class="keyword">short</span><span>)rowTo,(</span><span class="keyword">short</span><span>)columnTo); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>sheet.addMergedRegion(region); &nbsp;&nbsp;</span></li>
                <li class="alt"><span class="comment">//得到所有区域 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>sheet.getNumMergedRegions()&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><strong>7、常用方法</strong> <br />
            根据单元格不同属性返回字符串数值 <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span class="keyword">public</span><span>&nbsp;String&nbsp;getCellStringValue(HSSFCell&nbsp;cell)&nbsp;{ &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cellValue&nbsp;=&nbsp;</span><span class="string">""</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">switch</span><span>&nbsp;(cell.getCellType())&nbsp;{ &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_STRING: &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellValue&nbsp;=&nbsp;cell.getStringCellValue(); &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(cellValue.trim().equals(</span><span class="string">""</span><span>)||cellValue.trim().length()&lt;=</span><span class="number">0</span><span>) &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellValue=</span><span class="string">"&nbsp;"</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_NUMERIC: &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellValue&nbsp;=&nbsp;String.valueOf(cell.getNumericCellValue()); &nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_FORMULA: &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellValue&nbsp;=&nbsp;String.valueOf(cell.getNumericCellValue()); &nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_BLANK: &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellValue=</span><span class="string">"&nbsp;"</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_BOOLEAN: &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span>&nbsp;HSSFCell.CELL_TYPE_ERROR: &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">default</span><span>: &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;cellValue; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script><br />
            <strong><br />
            8、常用单元格边框格式</strong>
            <p>&nbsp;</p>
            <p>虚线HSSFCellStyle.BORDER_DOTTED <br />
            实线HSSFCellStyle.BORDER_THIN <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;HSSFCellStyle&nbsp;getCellStyle(</span><span class="keyword">short</span><span>&nbsp;type) &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFWorkbook&nbsp;wb&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFWorkbook(); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFCellStyle&nbsp;style&nbsp;=&nbsp;wb.createCellStyle(); &nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.setBorderBottom(type);</span><span class="comment">//下边框&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.setBorderLeft(type);</span><span class="comment">//左边框&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.setBorderRight(type);</span><span class="comment">//右边框&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.setBorderTop(type);</span><span class="comment">//上边框&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;style; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script><br />
            <strong><br />
            9、设置字体和内容位置</strong> <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>HSSFFont&nbsp;f&nbsp;&nbsp;=&nbsp;wb.createFont(); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>f.setFontHeightInPoints((</span><span class="keyword">short</span><span>)&nbsp;</span><span class="number">11</span><span>);</span><span class="comment">//字号 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);</span><span class="comment">//加粗 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>style.setFont(f); &nbsp;&nbsp;</span></li>
                <li class="alt"><span>style.setAlignment(HSSFCellStyle.ALIGN_CENTER);</span><span class="comment">//左右居中 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);</span><span class="comment">//上下居中 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>style.setRotation(</span><span class="keyword">short</span><span>&nbsp;rotation);</span><span class="comment">//单元格内容的旋转的角度 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>HSSFDataFormat&nbsp;df&nbsp;=&nbsp;wb.createDataFormat(); &nbsp;&nbsp;</span></li>
                <li class="alt"><span>style1.setDataFormat(df.getFormat(</span><span class="string">"0.00%"</span><span>));</span><span class="comment">//设置单元格数据格式 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>cell.setCellFormula(string);</span><span class="comment">//给单元格设公式 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>style.setRotation(</span><span class="keyword">short</span><span>&nbsp;rotation);</span><span class="comment">//单元格内容的旋转的角度 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>cell.setCellStyle(style); &nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script><br />
            <strong><br />
            10、插入图片</strong> <br />
            论坛里看到的 <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span class="comment">//先把读进来的图片放到一个ByteArrayOutputStream中，以便产生ByteArray </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;byteArrayOut&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ByteArrayOutputStream(); &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;bufferImg&nbsp;=&nbsp;ImageIO.read(</span><span class="keyword">new</span><span>&nbsp;File(</span><span class="string">"ok.jpg"</span><span>)); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageIO.write(bufferImg,</span><span class="string">"jpg"</span><span>,byteArrayOut); &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span class="comment">//读进一个excel模版 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>FileInputStream&nbsp;fos&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;FileInputStream(filePathName+</span><span class="string">"/stencil.xlt"</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>fs&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;POIFSFileSystem(fos); &nbsp;&nbsp;</span></span></li>
                <li class=""><span class="comment">//创建一个工作薄 </span><span>&nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>HSSFWorkbook&nbsp;wb&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFWorkbook(fs); &nbsp;&nbsp;</span></span></li>
                <li class=""><span>HSSFSheet&nbsp;sheet&nbsp;=&nbsp;wb.getSheetAt(</span><span class="number">0</span><span>); &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>HSSFPatriarch&nbsp;patriarch&nbsp;=&nbsp;sheet.createDrawingPatriarch(); &nbsp;&nbsp;</span></li>
                <li class=""><span>HSSFClientAnchor&nbsp;anchor&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFClientAnchor(</span><span class="number">0</span><span>,</span><span class="number">0</span><span>,</span><span class="number">1023</span><span>,</span><span class="number">255</span><span>,(</span><span class="keyword">short</span><span>)&nbsp;</span><span class="number">0</span><span>,</span><span class="number">0</span><span>,(</span><span class="keyword">short</span><span>)</span><span class="number">10</span><span>,</span><span class="number">10</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>patriarch.createPicture(anchor&nbsp;,&nbsp;wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/160640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-14 22:27 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/14/160640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI操作Excel文档－基础篇（转）</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160639.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 14 Nov 2007 14:26:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160639.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/160639.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/160639.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/160639.html</trackback:ping><description><![CDATA[<div style="margin-top: 5px; margin-left: 15px"><strong>关键字:</strong> &nbsp; poi&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div style="margin-top: 10px; margin-left: 15px; overflow: auto">
<table width="100%">
    <tbody>
        <tr>
            <td>
            <p><strong>一．POI简介 </strong></p>
            <p>Jakarta POI 是apache的子项目，目标是处理ole2对象。它提供了一组操纵Windows文档的Java API </p>
            <p>目前比较成熟的是HSSF接口，处理MS Excel（97-2002）对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西，而是真正的Excel对象，你可以控制一些属性如sheet,cell等等。 </p>
            <p><strong>二．HSSF概况 </strong></p>
            <p>HSSF 是Horrible SpreadSheet Format的缩写，也即&#8220;讨厌的电子表格格式&#8221;。 也许HSSF的名字有点滑稽，就本质而言它是一个非常严肃、正规的API。通过HSSF，你可以用纯Java代码来读取、写入、修改Excel文件。 </p>
            <p>HSSF 为读取操作提供了两类API：usermodel和eventusermodel，即&#8220;用户模型&#8221;和&#8220;事件-用户模型&#8221;。前者很好理解，后者比较抽象，但操作效率要高得多。 <br />
            <strong><br />
            三．开始编码 </strong></p>
            <p><span style="color: red">1 ． 准备工作 </span></p>
            <p>要求:JDK 1.4+POI开发包 </p>
            <p>可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 最新的POI工具包 </p>
            <p><span style="color: red">2 ． EXCEL 结构 </span></p>
            <p>HSSFWorkbook excell 文档对象介绍 <br />
            HSSFSheet excell的表单 <br />
            HSSFRow excell的行 <br />
            HSSFCell excell的格子单元 <br />
            HSSFFont excell字体 <br />
            HSSFName 名称 <br />
            HSSFDataFormat 日期格式 <br />
            在poi1.7中才有以下2项： <br />
            HSSFHeader sheet头 <br />
            HSSFFooter sheet尾 <br />
            和这个样式 <br />
            HSSFCellStyle cell样式 <br />
            辅助操作包括 <br />
            HSSFDateUtil 日期 <br />
            HSSFPrintSetup 打印 <br />
            HSSFErrorConstants 错误信息表 <br />
            <span style="color: red"><br />
            3 ．具体用法实例 （采用 usermodel ） </span></p>
            <p>如何读Excel </p>
            <p>读取Excel文件时，首先生成一个POIFSFileSystem对象，由POIFSFileSystem对象构造一个HSSFWorkbook，该HSSFWorkbook对象就代表了Excel文档。下面代码读取上面生成的Excel文件写入的消息字串： <br />
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>POIFSFileSystem&nbsp;fs=newPOIFSFileSystem(</span><span class="keyword">new</span><span>&nbsp;FileInputStream(</span><span class="string">"d:\test.xls"</span><span>));&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>HSSFWorkbook&nbsp;　wb&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFWorkbook(fs);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>　　}&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(IOException&nbsp;e)&nbsp;{&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>　　e.printStackTrace();&nbsp; &nbsp;&nbsp;</span></li>
                <li class="alt"><span>　　}&nbsp; &nbsp;&nbsp;</span></li>
                <li class=""><span>　　HSSFSheet&nbsp;sheet&nbsp;=&nbsp;wb.getSheetAt(</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>　　HSSFRow&nbsp;row&nbsp;=&nbsp;sheet.getRow(</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>　　HSSFCell&nbsp;cell&nbsp;=&nbsp;row.getCell((</span><span class="keyword">short</span><span>)&nbsp;</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class="alt"><span>　　String&nbsp;msg&nbsp;=&nbsp;cell.getStringCellValue();&nbsp;&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p>如何写excel， </p>
            <p>将excel的第一个表单第一行的第一个单元格的值写成&#8220;a test&#8221;。 </p>
            <p>
            <div class="code_title">代码</div>
            <div class="code_div">
            <div class="dp-highlighter">
            <div class="bar"></div>
            <ol class="dp-j">
                <li class="alt"><span><span>POIFSFileSystem&nbsp;fs&nbsp;=</span><span class="keyword">new</span><span>&nbsp;POIFSFileSystem(</span><span class="keyword">new</span><span>&nbsp;FileInputStream(</span><span class="string">"workbook.xls"</span><span>));&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFWorkbook&nbsp;wb&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HSSFWorkbook(fs);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFSheet&nbsp;sheet&nbsp;=&nbsp;wb.getSheetAt(</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFRow&nbsp;row&nbsp;=&nbsp;sheet.getRow(</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;HSSFCell&nbsp;cell&nbsp;=&nbsp;row.getCell((</span><span class="keyword">short</span><span>)</span><span class="number">0</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;cell.setCellValue(</span><span class="string">"a&nbsp;test"</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Write&nbsp;the&nbsp;output&nbsp;to&nbsp;a&nbsp;file&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fileOut&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;FileOutputStream(</span><span class="string">"workbook.xls"</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;wb.write(fileOut);&nbsp; &nbsp;&nbsp;</span></li>
                <li class=""><span>&nbsp;&nbsp;</span></li>
                <li class="alt"><span>fileOut.close();&nbsp;&nbsp;&nbsp;</span></li>
            </ol>
            </div>
            </div>
            <script>render_code();</script>
            <p>&nbsp;</p>
            <p><span style="color: red">4 ． 可参考文档 </span></p>
            <p>POI 主页：http://jakarta.apache.org/poi/， </p>
            <p>初学者如何快速上手使用POI HSSF </p>
            <p><a href="http://jakarta.apache.org/poi/hssf/quick-guide.html%20。" target="blank">http://jakarta.apache.org/poi/hssf/quick-guide.html 。 </a></p>
            <p>代码例子 http://blog.java-cn.com/user1/6749/archives/2005/18347.html </p>
            <p>里面有很多例子代码，可以很方便上手。 <br />
            <strong><br />
            四．使用心得 </strong></p>
            <p>POI HSSF 的usermodel包把Excel文件映射成我们熟悉的结构，诸如Workbook、Sheet、Row、Cell等，它把整个结构以一组对象的形式保存在内存之中，便于理解，操作方便，基本上能够满足我们的要求，所以说这个一个不错的选择。</p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/160639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-14 22:26 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/14/160639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI Excel整理(转)</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160638.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 14 Nov 2007 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160638.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/160638.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/160638.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/160638.html</trackback:ping><description><![CDATA[<p>1.创建工作簿 (WORKBOOK)<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
2.创建工作表（SHEET）<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet1 = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet2 = wb.createSheet("second sheet");<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
3.创建单元格(CELL)<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; // Create a row and put some cells in it. Rows are 0 based.<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short)0);<br />
&nbsp;&nbsp;&nbsp; // Create a cell and put a value in it.<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short)0);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(1);<br />
&nbsp;&nbsp;&nbsp; // Or do it on one line.<br />
&nbsp;&nbsp;&nbsp; row.createCell((short)1).setCellValue(1.2);<br />
&nbsp;&nbsp;&nbsp; row.createCell((short)2).setCellValue("This is a string");<br />
&nbsp;&nbsp;&nbsp; row.createCell((short)3).setCellValue(true);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
4.创建指定单元格式的单元格<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; // Create a row and put some cells in it. Rows are 0 based.<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short)0);<br />
&nbsp;&nbsp;&nbsp; // Create a cell and put a date value in it.&nbsp; The first cell is not styled<br />
&nbsp;&nbsp;&nbsp; // as a date.<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short)0);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(new Date());<br />
&nbsp;&nbsp;&nbsp; // we style the second cell as a date (and time).&nbsp; It is important to<br />
&nbsp;&nbsp;&nbsp; // create a new cell style from the workbook otherwise you can end up<br />
&nbsp;&nbsp;&nbsp; // modifying the built in style and effecting not only this cell but other cells.<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle cellStyle = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));<br />
&nbsp;&nbsp;&nbsp; cell = row.createCell((short)1);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(new Date());<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(cellStyle);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
5. 单元格的不同格式<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short)2);<br />
&nbsp;&nbsp;&nbsp; row.createCell((short) 0).setCellValue(1.1);<br />
&nbsp;&nbsp;&nbsp; row.createCell((short) 1).setCellValue(new Date());<br />
&nbsp;&nbsp;&nbsp; row.createCell((short) 2).setCellValue("a string");<br />
&nbsp;&nbsp;&nbsp; row.createCell((short) 3).setCellValue(true);<br />
&nbsp;&nbsp;&nbsp; row.createCell((short) 4).setCellType(HSSFCell.CELL_TYPE_ERROR);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
6.单元格的不通对齐方式<br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws IOException<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileOut.close();<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Creates a cell and aligns it a certain way.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param wb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the workbook<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the row to create the cell in<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param column&nbsp;&nbsp;&nbsp; the column number to create the cell in<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param align&nbsp;&nbsp;&nbsp;&nbsp; the alignment for the cell.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell(column);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.setCellValue("Align It");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFCellStyle cellStyle = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cellStyle.setAlignment(align);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.setCellStyle(cellStyle);<br />
&nbsp;&nbsp;&nbsp; }<br />
7.单元格的边框设置<br />
Working with borders<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; // Create a row and put some cells in it. Rows are 0 based.<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 1);<br />
&nbsp;&nbsp;&nbsp; // Create a cell and put a value in it.<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short) 1);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(4);<br />
&nbsp;&nbsp;&nbsp; // Style the cell with borders all around.<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setBorderBottom(HSSFCellStyle.BORDER_THIN);<br />
&nbsp;&nbsp;&nbsp; style.setBottomBorderColor(HSSFColor.BLACK.index);<br />
&nbsp;&nbsp;&nbsp; style.setBorderLeft(HSSFCellStyle.BORDER_THIN);<br />
&nbsp;&nbsp;&nbsp; style.setLeftBorderColor(HSSFColor.GREEN.index);<br />
&nbsp;&nbsp;&nbsp; style.setBorderRight(HSSFCellStyle.BORDER_THIN);<br />
&nbsp;&nbsp;&nbsp; style.setRightBorderColor(HSSFColor.BLUE.index);<br />
&nbsp;&nbsp;&nbsp; style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);<br />
&nbsp;&nbsp;&nbsp; style.setTopBorderColor(HSSFColor.BLACK.index);<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
8.填充和颜色设置<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; // Create a row and put some cells in it. Rows are 0 based.<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 1);<br />
&nbsp;&nbsp;&nbsp; // Aqua background<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setFillBackgroundColor(HSSFColor.AQUA.index);<br />
&nbsp;&nbsp;&nbsp; style.setFillPattern(HSSFCellStyle.BIG_SPOTS);<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short) 1);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("X");<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; // Orange "foreground", foreground being the fill foreground not the font color.<br />
&nbsp;&nbsp;&nbsp; style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setFillForegroundColor(HSSFColor.ORANGE.index);<br />
&nbsp;&nbsp;&nbsp; style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);<br />
&nbsp;&nbsp;&nbsp; cell = row.createCell((short) 2);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("X");<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
9.合并单元格操作<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 1);<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short) 1);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("This is a test of merging");<br />
&nbsp;&nbsp;&nbsp; sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
10.字体设置<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; // Create a row and put some cells in it. Rows are 0 based.<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 1);<br />
&nbsp;&nbsp;&nbsp; // Create a new font and alter it.<br />
&nbsp;&nbsp;&nbsp; HSSFFont font = wb.createFont();<br />
&nbsp;&nbsp;&nbsp; font.setFontHeightInPoints((short)24);<br />
&nbsp;&nbsp;&nbsp; font.setFontName("Courier New");<br />
&nbsp;&nbsp;&nbsp; font.setItalic(true);<br />
&nbsp;&nbsp;&nbsp; font.setStrikeout(true);<br />
&nbsp;&nbsp;&nbsp; // Fonts are set into a style so create a new one to use.<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setFont(font);<br />
&nbsp;&nbsp;&nbsp; // Create a cell and put a value in it.<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short) 1);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("This is a test of fonts");<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
11.自定义颜色<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet();<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.createRow((short) 0);<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell((short) 0);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("Default Palette");<br />
&nbsp;&nbsp;&nbsp; //apply some colors from the standard palette,<br />
&nbsp;&nbsp;&nbsp; // as in the previous examples.<br />
&nbsp;&nbsp;&nbsp; //we'll use red text on a lime background<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setFillForegroundColor(HSSFColor.LIME.index);<br />
&nbsp;&nbsp;&nbsp; style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);<br />
&nbsp;&nbsp;&nbsp; HSSFFont font = wb.createFont();<br />
&nbsp;&nbsp;&nbsp; font.setColor(HSSFColor.RED.index);<br />
&nbsp;&nbsp;&nbsp; style.setFont(font);<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; //save with the default palette<br />
&nbsp;&nbsp;&nbsp; FileOutputStream out = new FileOutputStream("default_palette.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(out);<br />
&nbsp;&nbsp;&nbsp; out.close();<br />
&nbsp;&nbsp;&nbsp; //now, let's replace RED and LIME in the palette<br />
&nbsp;&nbsp;&nbsp; // with a more attractive combination<br />
&nbsp;&nbsp;&nbsp; // (lovingly borrowed from freebsd.org)<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("Modified Palette");<br />
&nbsp;&nbsp;&nbsp; //creating a custom palette for the workbook<br />
&nbsp;&nbsp;&nbsp; HSSFPalette palette = wb.getCustomPalette();<br />
&nbsp;&nbsp;&nbsp; //replacing the standard red with freebsd.org red<br />
&nbsp;&nbsp;&nbsp; palette.setColorAtIndex(HSSFColor.RED.index,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (byte) 153,&nbsp; //RGB red (0-255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (byte) 0,&nbsp;&nbsp;&nbsp; //RGB green<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (byte) 0&nbsp;&nbsp;&nbsp;&nbsp; //RGB blue<br />
&nbsp;&nbsp;&nbsp; );<br />
&nbsp;&nbsp;&nbsp; //replacing lime with freebsd.org gold<br />
&nbsp;&nbsp;&nbsp; palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 255, (byte) 204, (byte) 102);<br />
&nbsp;&nbsp;&nbsp; //save with the modified palette<br />
&nbsp;&nbsp;&nbsp; // note that wherever we have previously used RED or LIME, the<br />
&nbsp;&nbsp;&nbsp; // new colors magically appear<br />
&nbsp;&nbsp;&nbsp; out = new FileOutputStream("modified_palette.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(out);<br />
&nbsp;&nbsp;&nbsp; out.close();<br />
12.读和重写EXCEL文件<br />
&nbsp;&nbsp;&nbsp; POIFSFileSystem fs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new POIFSFileSystem(new FileInputStream("workbook.xls"));<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook(fs);<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.getSheetAt(0);<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet.getRow(2);<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.getCell((short)3);<br />
&nbsp;&nbsp;&nbsp; if (cell == null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell = row.createCell((short)3);<br />
&nbsp;&nbsp;&nbsp; cell.setCellType(HSSFCell.CELL_TYPE_STRING);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue("a test");<br />
&nbsp;&nbsp;&nbsp; // Write the output to a file<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
13.在EXCEL单元格中使用自动换行<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet s = wb.createSheet();<br />
&nbsp;&nbsp;&nbsp; HSSFRow r = null;<br />
&nbsp;&nbsp;&nbsp; HSSFCell c = null;<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle cs = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; HSSFFont f = wb.createFont();<br />
&nbsp;&nbsp;&nbsp; HSSFFont f2 = wb.createFont();<br />
&nbsp;&nbsp;&nbsp; cs = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; cs.setFont( f2 );<br />
&nbsp;&nbsp;&nbsp; //Word Wrap MUST be turned on<br />
&nbsp;&nbsp;&nbsp; cs.setWrapText( true );<br />
&nbsp;&nbsp;&nbsp; r = s.createRow( (short) 2 );<br />
&nbsp;&nbsp;&nbsp; r.setHeight( (short) 0x349 );<br />
&nbsp;&nbsp;&nbsp; c = r.createCell( (short) 2 );<br />
&nbsp;&nbsp;&nbsp; c.setCellType( HSSFCell.CELL_TYPE_STRING );<br />
&nbsp;&nbsp;&nbsp; c.setCellValue( "Use \n with word wrap on to create a new line" );<br />
&nbsp;&nbsp;&nbsp; c.setCellStyle( cs );<br />
&nbsp;&nbsp;&nbsp; s.setColumnWidth( (short) 2, (short) ( ( 50 * 8 ) / ( (double) 1 / 20 ) ) );<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );<br />
&nbsp;&nbsp;&nbsp; wb.write( fileOut );<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
14.数字格式自定义<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("format sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style;<br />
&nbsp;&nbsp;&nbsp; HSSFDataFormat format = wb.createDataFormat();<br />
&nbsp;&nbsp;&nbsp; HSSFRow row;<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell;<br />
&nbsp;&nbsp;&nbsp; short rowNum = 0;<br />
&nbsp;&nbsp;&nbsp; short colNum = 0;<br />
&nbsp;&nbsp;&nbsp; row = sheet.createRow(rowNum++);<br />
&nbsp;&nbsp;&nbsp; cell = row.createCell(colNum);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(11111.25);<br />
&nbsp;&nbsp;&nbsp; style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setDataFormat(format.getFormat("0.0"));<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; row = sheet.createRow(rowNum++);<br />
&nbsp;&nbsp;&nbsp; cell = row.createCell(colNum);<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue(11111.25);<br />
&nbsp;&nbsp;&nbsp; style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setDataFormat(format.getFormat("#,##0.0000"));<br />
&nbsp;&nbsp;&nbsp; cell.setCellStyle(style);<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
15.调整工作单位置<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("format sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFPrintSetup ps = sheet.getPrintSetup();<br />
&nbsp;&nbsp;&nbsp; sheet.setAutobreaks(true);<br />
&nbsp;&nbsp;&nbsp; ps.setFitHeight((short)1);<br />
&nbsp;&nbsp;&nbsp; ps.setFitWidth((short)1); </p>
<div>&nbsp;&nbsp;&nbsp; // Create various cells and rows for spreadsheet.<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
16.设置打印区域<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("Sheet1");<br />
&nbsp;&nbsp;&nbsp; wb.setPrintArea(0, "$A$1:$C$2");<br />
&nbsp;&nbsp;&nbsp; //sets the print area for the first sheet<br />
&nbsp;&nbsp;&nbsp; //Alternatively:<br />
&nbsp;&nbsp;&nbsp; //wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See the JavaDocs for more details)<br />
&nbsp;&nbsp;&nbsp; // Create various cells and rows for spreadsheet.<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
17.标注脚注<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("format sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFFooter footer = sheet.getFooter()<br />
&nbsp;&nbsp;&nbsp; footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; // Create various cells and rows for spreadsheet.<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
18.使用方便的内部提供的函数<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet1 = wb.createSheet( "new sheet" );<br />
&nbsp;&nbsp;&nbsp; // Create a merged region<br />
&nbsp;&nbsp;&nbsp; HSSFRow row = sheet1.createRow( (short) 1 );<br />
&nbsp;&nbsp;&nbsp; HSSFRow row2 = sheet1.createRow( (short) 2 );<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell = row.createCell( (short) 1 );<br />
&nbsp;&nbsp;&nbsp; cell.setCellValue( "This is a test of merging" );<br />
&nbsp;&nbsp;&nbsp; Region region = new Region( 1, (short) 1, 4, (short) 4 );<br />
&nbsp;&nbsp;&nbsp; sheet1.addMergedRegion( region );<br />
&nbsp;&nbsp;&nbsp; // Set the border and border colors.<br />
&nbsp;&nbsp;&nbsp; final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setBorderBottom( borderMediumDashed,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region, sheet1, wb );<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setBorderTop( borderMediumDashed,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region, sheet1, wb );<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setBorderLeft( borderMediumDashed,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region, sheet1, wb );<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setBorderRight( borderMediumDashed,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region, sheet1, wb );<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);<br />
&nbsp;&nbsp;&nbsp; HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);<br />
&nbsp;&nbsp;&nbsp; // Shows some usages of HSSFCellUtil<br />
&nbsp;&nbsp;&nbsp; HSSFCellStyle style = wb.createCellStyle();<br />
&nbsp;&nbsp;&nbsp; style.setIndention((short)4);<br />
&nbsp;&nbsp;&nbsp; HSSFCellUtil.createCell(row, 8, "This is the value of the cell", style);<br />
&nbsp;&nbsp;&nbsp; HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8, "This is the value of the cell");<br />
&nbsp;&nbsp;&nbsp; HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);<br />
&nbsp;&nbsp;&nbsp; // Write out the workbook<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );<br />
&nbsp;&nbsp;&nbsp; wb.write( fileOut );<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
19.在工作单中移动行，调整行的上下位置<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("row sheet");<br />
&nbsp;&nbsp;&nbsp; // Create various cells and rows for spreadsheet.<br />
&nbsp;&nbsp;&nbsp; // Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)<br />
&nbsp;&nbsp;&nbsp; sheet.shiftRows(5, 10, -5);<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
20.选种指定的工作单<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("row sheet");<br />
&nbsp;&nbsp;&nbsp; sheet.setSelected(true);<br />
&nbsp;&nbsp;&nbsp; // Create various cells and rows for spreadsheet.<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
21.工作单的放大缩小<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet1 = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; sheet1.setZoom(3,4);&nbsp;&nbsp; // 75 percent magnification<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
22.头注和脚注<br />
&nbsp;&nbsp;&nbsp; HSSFWorkbook wb = new HSSFWorkbook();<br />
&nbsp;&nbsp;&nbsp; HSSFSheet sheet = wb.createSheet("new sheet");<br />
&nbsp;&nbsp;&nbsp; HSSFHeader header = sheet.getHeader();<br />
&nbsp;&nbsp;&nbsp; header.setCenter("Center Header");<br />
&nbsp;&nbsp;&nbsp; header.setLeft("Left Header");<br />
&nbsp;&nbsp;&nbsp; header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");<br />
&nbsp;&nbsp;&nbsp; FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />
&nbsp;&nbsp;&nbsp; wb.write(fileOut);<br />
&nbsp;&nbsp;&nbsp; fileOut.close();<br />
//-------------------------------以上实例代码均来自官方网站<br />
//-------------------------------POI中使用的颜色是用颜色索引来实现，如下：<br />
&nbsp;&nbsp; /*<br />
&nbsp;&nbsp;&nbsp; * 颜色对照表 数字代表颜色索引<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8： BLACK<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60： BROWN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 59： OLIVE_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 58： DARK_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 56： DARK_TEAL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18： DARK_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32： DARK_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 62： INDIGO<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 63： GREY_80_PERCENT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 53： ORANGE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19： DARK_YELLOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17： GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21： TEAL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 38： TEAL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12： BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 39： BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 54： BLUE_GREY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23： GREY_50_PERCENT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10： RED<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 52： LIGHT_ORANGE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 50： LIME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 57： SEA_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49： AQUA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 48： LIGHT_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20： VIOLET<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36： VIOLET<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 55： GREY_40_PERCENT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14： PINK<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33： PINK<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51： GOLD<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13： YELLOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34： YELLOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11： BRIGHT_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35： BRIGHT_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15： TURQUOISE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35： TURQUOISE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16： DARK_RED<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 37： DARK_RED<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40： SKY_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61： PLUM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25： PLUM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22： GREY_25_PERCENT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 45： ROSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 43： LIGHT_YELLOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 42： LIGHT_GREEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 41： LIGHT_TURQUOISE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27：LIGHT_TURQUOISE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44： PALE_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 46： LAVENDER<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9： WHITE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24： CORNFLOWER_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26： LEMON_CHIFFON<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25： MAROON<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28： ORCHID<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 29： CORAL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30： ROYAL_BLUE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31： LIGHT_CORNFLOWER_BLUE<br />
&nbsp;&nbsp;&nbsp; */<br />
//----------------------------------------------------你可以按上面的方法来自定义颜色<br />
&nbsp;&nbsp; /*<br />
&nbsp;&nbsp;&nbsp; * 自定义颜色，去掉注释，贴加，其他则查看颜色对照表<br />
&nbsp;&nbsp; HSSFPalette palette = this.getCustomPalette();<br />
&nbsp;&nbsp; palette.setColorAtIndex(idx,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i,&nbsp; //RGB red (0-255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j,&nbsp;&nbsp;&nbsp; //RGB green<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k&nbsp;&nbsp;&nbsp;&nbsp; //RGB blue<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; */<br />
//---------------------------------------------------用以上的基础知识我们就可以制作复杂的多表头，控制元/</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/160638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-14 22:25 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/14/160638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI 复制excel一行到另外一个sheet页(转)</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160588.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 14 Nov 2007 08:51:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160588.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/160588.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/14/160588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/160588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/160588.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: import&nbsp;java.io.FileInputStream;import&nbsp;java.io.FileNotFoundException;import&nbsp;java.io.FileOutputStream;import&nbsp;java.io.IOException;import&nbsp;org.apache.poi.hssf.usermodel.H...&nbsp;&nbsp;<a href='http://www.blogjava.net/liaojiyong/archive/2007/11/14/160588.html'>阅读全文</a><img src ="http://www.blogjava.net/liaojiyong/aggbug/160588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-14 16:51 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/14/160588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>