java中导入、导出excel

  
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  
 <html xmlns="http://www.w3.org/1999/xhtml">
  
 <head>
  
 <link rel="canonical" href="http://blog.csdn.net/jerehedu/article/details/45195359"/>
 <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
  
 <title>Java中导入、导出Excel 
 - 博客频道 - CSDN.NET</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="description" content="一、介绍  当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。  目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java&#160;Excel  下面我就" />
  
 <script src="http://static.blog.csdn.net/scripts/blog_static_head.min.js" type="text/javascript"></script>
  
  
 <!--new top-->
 <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/toolbar/css/index.css"> <!--new top-->
  
 <!-- ad begin -->
 <script language="javascript" type="text/javascript" src="http://ads.csdn.net/js/tracking.js"></script>
 <!-- ad end-->
  
 <link rel="Stylesheet" type="text/css" href="http://static.blog.csdn.net/skin/skin-white/css/style.css?v=1.1" />
  
  
  
 <link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="/JerehEdu/rss/list" />
 <link rel="shortcut icon" href="http://c.csdnimg.cn/public/favicon.ico" />
 <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />
  
  
  
 <link rel="stylesheet" href="http://static.blog.csdn.net/css/csdn_blog_detail.min.css" />
  
 <script src="http://c.csdnimg.cn/rabbit/tracking-ad/fuckadblock.js" type="text/javascript" charset="utf-8"></script>
 <script src="http://c.csdnimg.cn/rabbit/tracking-ad/block.js" type="text/javascript" charset="utf-8"></script>
  
  
 </head>
  
  
 <body>
  
  
  
  
 <!-- 广告位开始 -->
  
 <!-- 广告位结束 -->
  
  
  
 <!--new top-->
 <script id="toolbar-tpl-scriptId" fixed="true" prod="blog" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/html.js" type="text/javascript"></script>
 <!--new top-->
 <div id="container">
 <div id="header">
 <div class="header">
 <div id="blog_title">
 <h2>
 <a href="http://blog.csdn.net/jerehedu">杰瑞教育</a></h2>
 <h3>致力IT培训领域,打造一流人才服务平台</h3>
 <div class="clear">
 </div>
 </div>
 <div class="clear">
 </div>
  
  
 </div>
 </div>
 <div id="navigator">
 <div class="navigator_bg">
 </div>
 <div class="navigator">
 <ul>
 <li id="btnContents"><a href="http://blog.csdn.net/jerehedu?viewmode=contents"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">
 <img src="http://static.blog.csdn.net/images/ico_list.gif">目录视图</span></a></li>
 <li id="btnView"><a href="http://blog.csdn.net/jerehedu?viewmode=list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">
 <img src="http://static.blog.csdn.net/images/ico_summary.gif">摘要视图</span></a></li>
 <li id="btnRss"><a href="http://blog.csdn.net/jerehedu/rss/list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">
 <img src="http://static.blog.csdn.net/images/ico_rss.gif">订阅</span></a></li>
  
  
 </ul>
 </div>
 </div>
 <script type="text/javascript">
 var username = "JerehEdu";
 var _blogger = username;
 var blog_address = "http://blog.csdn.net/jerehedu";
 var static_host = "http://static.blog.csdn.net";
 var currentUserName = "lzl110110";
 </script>
  
 <div id="body">
 <div id="main">
 <div class="main">
 <div class="ad_class">
 <div class="notice tracking-ad" data-mod='popu_3' >
  
  
 <a href="http://blog.csdn.net/blogdevteam/article/details/71710010">
 <font color=blue><strong>【活动】2017 CSDN博客专栏评选</strong></font></a>
  
 &nbsp;&nbsp;&nbsp;&nbsp
  
 <a href=" http://blog.csdn.net/broadview2006/article/details/72677185">
 <font color=red><strong>【评论送书】SQL优化、深度学习、数据科学家</strong></font></a>
 &nbsp;&nbsp;&nbsp;&nbsp
  
 <a href="http://blog.csdn.net/blogdevteam/article/details/72725354">
 <font color=blue><strong>CSDN日报20170525 ——《狗蛋的寻亲之路,结识嵌入式世界的那只狗》
 </strong></font></a>
  
 &nbsp;&nbsp;&nbsp;&nbsp
  
 <a href=" http://blog.csdn.net/blogdevteam/article/details/72626843">
 <font color=red><strong>Python创意编程活动结果公布</strong></font></a>
  
  
 </div> </div>
  
  
  
  
  
  
  
  
  
  
  
 <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
  
 <script type="text/ecmascript">
 window.quickReplyflag = true;
  
 var isBole = false;
  
  
 var fasrc="http://my.csdn.net/my/favorite/miniadd?t=Java%e4%b8%ad%e5%af%bc%e5%85%a5%e3%80%81%e5%af%bc%e5%87%baExcel&u=http://blog.csdn.net/jerehedu/article/details/45195359"
  
 </script>
 <div id="article_details" class="details">
 <div class="article_title">
 <span class="ico ico_type_Original"></span>
  
  
 <h1>
 <span class="link_title"><a href="/jerehedu/article/details/45195359">
 Java中导入、导出Excel
 </a></span>
 </h1>
 </div>
  
  
  
 <div class="article_manage clearfix">
 <div class="article_r">
 <span class="link_postdate">2015-04-22 15:03</span>
 <span class="link_view" title="阅读次数">2110人阅读</span>
 <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(1)</span>
 <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Java%e4%b8%ad%e5%af%bc%e5%85%a5%e3%80%81%e5%af%bc%e5%87%baExcel','45195359');return false;" title="收藏">收藏</a></span>
 <span class="link_report"> <a href="#report" onclick="javascript:report(45195359,2);return false;" title="举报">举报</a></span>
  
 </div>
 </div>
 <div class="embody" style="display:none" id="embody">
 <span class="embody_t">本文章已收录于:</span>
 <div class="embody_c" id="lib" value="{&quot;err&quot;:0,&quot;msg&quot;:&quot;ok&quot;,&quot;data&quot;:[]}"></div>
 </div>
 <style type="text/css">
 .embody{
 padding:10px 10px 10px;
 margin:0 -20px;
 border-bottom:solid 1px #ededed;
 }
 .embody_b{
 margin:0 ;
 padding:10px 0;
 }
 .embody .embody_t,.embody .embody_c{
 display: inline-block;
 margin-right:10px;
 }
 .embody_t{
 font-size: 12px;
 color:#999;
 }
 .embody_c{
 font-size: 12px;
 }
 .embody_c img,.embody_c em{
 display: inline-block;
 vertical-align: middle;
 }
 .embody_c img{
 width:30px;
 height:30px;
 }
 .embody_c em{
 margin: 0 20px 0 10px;
 color:#333;
 font-style: normal;
 }
 </style>
 <script type="text/javascript">
 $(function () {
 try
 {
 var lib = eval("("+$("#lib").attr("value")+")");
 var html = "";
 if (lib.err == 0) {
 $.each(lib.data, function (i) {
 var obj = lib.data[i];
 //html += '<img src="' + obj.logo + '"/>' + obj.name + "&nbsp;&nbsp;";
 html += ' <a href="' + obj.url + '" target="_blank">';
 html += ' <img src="' + obj.logo + '">';
 html += ' <em><b>' + obj.name + '</b></em>';
 html += ' </a>';
 });
 if (html != "") {
 setTimeout(function () {
 $("#lib").html(html);
 $("#embody").show();
 }, 100);
 }
 }
 } catch (err)
 { }
  
 });
 </script>
 <div class="category clearfix">
 <div class="category_l">
 <img src="http://static.blog.csdn.net/images/category_icon.jpg">
 <span>分类:</span>
 </div>
 <div class="category_r">
 <label onclick="GetCategoryArticles('2807947','JerehEdu','top','45195359');">
 <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">java技术分享<em>(14)</em></span>
 <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
 <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
 <div class="subItem">
 <div class="subItem_t"><a href="http://blog.csdn.net/JerehEdu/article/category/2807947" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
 <ul class="subItem_l" id="top_2807947">
 </ul>
 </div>
 </label>
 </div>
 </div>
 <div class="bog_copyright">
 <p class="copyright_p" >版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
 </div>
  
  
  
  
  
  
  
  
 <div id="article_content" class="article_content tracking-ad" data-mod=popu_307 data-dsm = "post" >
  
 <table border="0" style="border:0px solid #000000; border-collapse:collapse; word-break:break-word; color:#333333; font-family:Georgia,'Times New Roman',Times,sans-serif; font-size:14px; line-height:25px; width:100%; height:38px; background-color:#1570a6">
 <tbody>
 <tr>
 <td style="border-style:solid; border-color:silver; border-collapse:collapse; padding:3px">
 <span style="font-family:'Microsoft YaHei'"><strong><span style="color:#ffffff; font-size:14pt">一、介绍</span></strong></span></td>
 </tr>
 </tbody>
 </table>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">  当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java&nbsp;Excel</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  下面我就分别讲解一下如何使用这两个技术实现导入、导出Excel</span></p>
 <table border="0" style="border:0px solid #000000; border-collapse:collapse; word-break:break-word; color:#333333; font-family:Georgia,'Times New Roman',Times,sans-serif; font-size:14px; line-height:25px; width:100%; height:38px; background-color:#1570a6">
 <tbody>
 <tr>
 <td style="border-style:solid; border-color:silver; border-collapse:collapse; padding:3px">
 <span style="font-family:'Microsoft YaHei'"><strong><span style="color:#ffffff; font-size:14pt">二、使用Jakarta POI导入、导出Excel</span></strong></span></td>
 </tr>
 </tbody>
 </table>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  Jakarta POI 是一套用于访问微软&#26684;式文档的Java API。Jakarta POI有很多组件组成,其中有用于操作Excel&#26684;式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。官方主页<a target="_blank" href="http://poi.apache.org/index.html">http://poi.apache.org/index.html</a>,API文档<a target="_blank" href="http://poi.apache.org/apidocs/index.html">http://poi.apache.org/apidocs/index.html</a></span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.1 环境配置</h3>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  2.1.1下载jar</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  官方下载:<a target="_blank" href="http://poi.apache.org/download.html">http://poi.apache.org/download.html</a>这里可以下载到它的最新版本和文档,目前最新版本是3.7,这里使用比较稳定的3.6版。</span></p>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  2.1.2加入jar包</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  将根目录下的poi-3.6-20091214.jar和Lib目录下三个通用包 commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar拷贝到项目的Lib下</span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.2 Jakarta POI HSSF API组件</h3>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">  HSSF(用于操作Excel的组件)提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象,样式和&#26684;式,还有辅助操作。有以下几种对象:</span><span style="font-family:'Microsoft YaHei'">&nbsp;</span></p>
 <blockquote>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px"><strong>常用组件:</strong></span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFWorkbook &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel的文档对象</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFSheet &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel的表单</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFRow &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel的行</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFCell &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel的&#26684;子单元</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFFont &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel字体</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFDataFormat &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日期&#26684;式</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFHeader &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet头</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFFooter &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet尾(只有打印的时候才能看到效果)</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px"><strong>样式:</strong></span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFCellStyle &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell样式</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px"><strong>辅助操作包括:</strong></span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFDateUtil &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日期</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFPrintSetup &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打印</span></p>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">HSSFErrorConstants &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 错误信息表</span></p>
 </blockquote>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.3 基本操作步骤</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  <strong>基本操作步骤:</strong></span></p>
 <blockquote>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">1、用HSSFWorkbook打开或者创建“Excel文件对象”</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">2、用HSSFWorkbook对象返回或者创建Sheet对象</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">3、用Sheet对象返回行对象,用行对象得到Cell对象</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">4、对Cell对象读写。</span></p>
 </blockquote>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  下面来看一个动态生成Excel文件的例子:</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">//创建HSSFWorkbook对象
 HSSFWorkbook wb = new HSSFWorkbook();
 //创建HSSFSheet对象
 HSSFSheet sheet = wb.createSheet(&quot;sheet0&quot;);
 //创建HSSFRow对象
 HSSFRow row = sheet.createRow(0);
 //创建HSSFCell对象
 HSSFCell cell=row.createCell(0);
 //设置单元格的值
 cell.setCellValue(&quot;单元格中的中文&quot;);
 //输出Excel文件
 FileOutputStream output=new FileOutputStream(&quot;d:\\workbook.xls&quot;);
 wkb.write(output);
 output.flush();</pre></pre>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  HSSF读取文件同样还是使用这几个对象,只是把相应的createXXX方法变成了getXXX方法即可。可见只要理解了其中原理,不管是读还是写亦或是特定&#26684;式都可以轻松实现,正所谓知其然更要知其所以然。</span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.4 导出Excel应用实例</h3>
 <p><span style="font-family:'Microsoft YaHei'; line-height:1.5">  &nbsp;在2.3中我们寥寥几行代码实际上就已经就是实现了导出Excel一个简单示例,下面我们在看如何实现导出如图所示的Excel表&#26684;?</span></p>
 <p><span style="font-family:'Microsoft YaHei'; line-height:1.5"><img src="http://images.cnitblog.com/blog2015/708076/201503/170838550954408.png" alt=""></span></p>
 <p><span style="font-family:'Microsoft YaHei'; line-height:1.5">  代码如下:(实际开发中应封装到业务层组件中,然后在控制层中调用。这里直接写在控制层组件,如Servlet的doGet/doPost方法或Struts框架的execute方法中)</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">//创建HSSFWorkbook对象(excel的文档对象)
 HSSFWorkbook wb = new HSSFWorkbook();
 //建立新的sheet对象(excel的表单)
 HSSFSheet sheet=wkb.createSheet(&quot;成绩表&quot;);
 //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
 HSSFRow row1=sheet.createRow(0);
 //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
 HSSFCell cell=row1.createCell(0);
 //设置单元格内容
 cell.setCellValue(&quot;学员考试成绩一览表&quot;);
 //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
 sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));
 //在sheet里创建第二行
 HSSFRow row2=sheet.createRow(1);
 //创建单元格并设置单元格内容
 row2.createCell(0).setCellValue(&quot;姓名&quot;);
 row2.createCell(1).setCellValue(&quot;班级&quot;);
 row2.createCell(2).setCellValue(&quot;笔试成绩&quot;);
 row2.createCell(3).setCellValue(&quot;机试成绩&quot;);
 //在sheet里创建第三行
 HSSFRow row3=sheet.createRow(2);
 row3.createCell(0).setCellValue(&quot;李明&quot;);
 row3.createCell(1).setCellValue(&quot;As178&quot;);
 row3.createCell(2).setCellValue(87);
 row3.createCell(3).setCellValue(78);
 //.....省略部分代码
  
  
 //输出Excel文件
 OutputStream output=response.getOutputStream();
 response.reset();
 response.setHeader(&quot;Content-disposition&quot;, &quot;attachment; filename=details.xls&quot;);
 response.setContentType(&quot;application/msexcel&quot;);
 wkb.write(output);
 output.close();
 retrun null;</pre></pre>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  加下划线这部分代码是B/S模式中采用的输出方式,而不是输出到本地指定的磁盘目录。该代码表示将details.xls的Excel文件通过应答实体(response)输出给请求的客户端浏览器,客户端可保存或直接打开。</span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.5 样式设置</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  在实际应用中导出的Excel文件往往需要阅读和打印的,这就需要对输出的Excel文档进行排版和样式的设置,主要操作有合并单元&#26684;、设置单元&#26684;样式、设置字体样式等。</span></p>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  2.5.1单元&#26684;合并</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp; 使用HSSFSheet的addMergedRegion()方法</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">public int addMergedRegion(CellRangeAddress region)</pre></pre>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp; 参数CellRangeAddress 表示合并的区域,构造方法如下:</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)</pre></pre>
 </div>
 <p class="p0"><span style="font-family:'Microsoft YaHei'; font-size:14px">  构造参数依次表示起始行,截至行,起始列, 截至列。</span><span style="font-family:'Microsoft YaHei'">示例代码参照2.4部分</span></p>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">2.5.2设置单元&#26684;的行高、列宽</span></h3>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">HSSFSheet sheet=wb.createSheet();
  
 sheet.setDefaultRowHeightInPoints(10);//设置缺省列高sheet.setDefaultColumnWidth(20);//设置缺省列宽
  
 //设置指定列的列宽,256 * 50这种写法是因为width参数单位是单个字符的256分之一
  
 sheet.setColumnWidth(cell.getColumnIndex(), 256 * 50);</pre></pre>
 </div>
 </div>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  2.5.2单元&#26684;样式</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  1、创建HSSFCellStyle</span></p>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java"> HSSFCellStyle cellStyle=wkb.createCellStyle()</pre></pre>
 </div>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  2、设置样式</span></p>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java"> // 设置单元格的横向和纵向对齐方式,具体参数就不列了,参考HSSFCellStyle
  
 cellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY);
  
 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  
 /* 设置单元格的填充方式,以及前景颜色和背景颜色
  
 三点注意:
  
 1.如果需要前景颜色或背景颜色,一定要指定填充方式,两者顺序无所谓;
  
 2.如果同时存在前景颜色和背景颜色,前景颜色的设置要写在前面;
  
 3.前景颜色不是字体颜色。
  
 */
  
 //设置填充方式(填充图案)
  
 cellStyle.setFillPattern(HSSFCellStyle.DIAMONDS);
  
 //设置前景色
  
 cellStyle.setFillForegroundColor(HSSFColor.RED.index);
  
 //设置背景颜色
  
 cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_YELLOW.index);
  
 // 设置单元格底部的边框及其样式和颜色
  
 // 这里仅设置了底边边框,左边框、右边框和顶边框同理可设
  
 cellStyle.setBorderBottom(HSSFCellStyle.BORDER_SLANTED_DASH_DOT);
  
 cellStyle.setBottomBorderColor(HSSFColor.DARK_RED.index);
  
 //设置日期型数据的显示样式
  
 cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(&quot;m/d/yy h:mm&quot;)); </pre></pre>
 </div>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  3、将样式应用于单元&#26684;</span></p>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java"> cell.setCellStyle(cellStyle);
  
 //将样式应用到行,但有些样式只对单元格起作用
  
 row.setRowStyle(cellStyle);</pre></pre>
 </div>
 </div>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  2.5.2设置字体样式</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  1、创建HSSFFont对象(调用HSSFWorkbook 的createFont方法)</span></p>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">HSSFWorkbook wb=new HSSFWorkbook();
  
 HSSFFont fontStyle=wb.createFont();
  
 HSSFWorkbook wb=new HSSFWorkbook ();</pre></pre>
 </div>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  2、设置字体各种样式</span></p>
 <div>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java"> //设置字体样式
  
 fontStyle.setFontName(&quot;宋体&quot;);
  
 //设置字体高度
  
 fontStyle.setFontHeightInPoints((short)20);
  
 //设置字体颜色
  
 font.setColor(HSSFColor.BLUE.index);
  
 //设置粗体
  
 fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  
 //设置斜体
  
 font.setItalic(true);
  
 //设置下划线
  
 font.setUnderline(HSSFFont.U_SINGLE);</pre></pre>
 </div>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  3、将字体设置到单元&#26684;样式</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px"></span><pre name="code" class="java">//字体也是单元格格式的一部分,所以从属于HSSFCellStyle
  
 // 将字体对象赋值给单元格样式对象
  
 cellStyle.setFont(font);
  
 // 将单元格样式应用于单元格
  
 cell.setCellStyle(cellStyle);</pre></p>
 <div class="cnblogs_code">
 <pre></pre>
 </div>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 2.6 导入Excel应用实例</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  实现将已存在的Excel文件中的数据导入到系统中的基本步骤同导出十分的类&#20284;,关键在于要了解要导入Excel文件的结构,比如数据有哪些列、读取数据起始位置(有效数据从第几行几列开始)等。在实际项目中由于这些数据(Excel文件)往往来自于日常办公人员或其他系统平台产生的业务数据,因此这些Excel文件的数据&#26684;式要有统一的要求,并提供访问接口(指访问途径),这样在所需数据的系统中就可通过提供这个访问接口调用方法,从而获得数据。解决方案采用Web
 Service是不错的选择。这里,我们就以导入2..4所产生的excel表为例,重点掌握如何编写导入Excel代码</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">public List&lt;ScoreInfo&gt; loadScoreInfo(String xlsPath) throws IOException{
 List temp = new ArrayList();
 FileInputStream fileIn = new FileInputStream(xlsPath);
 //根据指定的文件输入流导入Excel从而产生Workbook对象
 Workbook wb0 = new HSSFWorkbook(fileIn);
 //获取Excel文档中的第一个表单
 Sheet sht0 = wb0.getSheetAt(0);
 //对Sheet中的每一行进行迭代
 for (Row r : sht0) {
 //如果当前行的行号(从0开始)未达到2(第三行)则从新循环
 If(r.getRowNum()&lt;1){
 continue;
 }
 //创建实体类
 ScoreInfo info=new ScoreInfo();
 //取出当前行第1个单元格数据,并封装在info实体stuName属性上
 info.setStuName(r.getCell(0).getStringCellValue());
 info.setClassName(r.getCell(1).getStringCellValue());
 info.setRscore(r.getCell(2).getNumericCellValue());
 info.setLscore(r.getCell(3).getNumericCellValue());
 temp.add(info);
 }
 fileIn.close();
 return temp;
 }</pre></pre>
 </div>
 <table border="0" style="border:0px solid #000000; border-collapse:collapse; word-break:break-word; color:#333333; font-family:Georgia,'Times New Roman',Times,sans-serif; font-size:14px; line-height:25px; width:100%; height:38px; background-color:#1570a6">
 <tbody>
 <tr>
 <td style="border-style:solid; border-color:silver; border-collapse:collapse; padding:3px">
 <span style="font-family:'Microsoft YaHei'"><strong><span style="color:#ffffff; font-size:14pt">三、使用java Excel操作Excel文件</span></strong></span></td>
 </tr>
 </tbody>
 </table>
 <p style="text-align:left">&nbsp;  <span style="font-family:'Microsoft YaHei'">Java&nbsp;Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。jxl 由于其小巧 易用的特点, 逐渐已经取代了 POI-excel的地位, 成为了越来越多的java开发人员生成excel文件的首选。Java&nbsp; Excel的特征:</span></p>
 <blockquote>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">● 支持Excel 95-2000的所有版本
 </span><br>
 <span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ● 生成Excel 2000标准&#26684;式
 </span><br>
 <span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ● 支持字体、数字、日期&#26684;式化操作
 </span><br>
 <span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ● 支持对单元&#26684;加阴影和加色彩;
 </span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">● 修改存在的工作表;</span><br>
 <span style="font-family:'Microsoft YaHei'; font-size:14px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ● 支持图像和图表 </span>
 </p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">● 日志记录可以定制</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">● 更小更快更省内存</span></p>
 </blockquote>
 <p style="text-align:left"><span style="font-family:'Microsoft YaHei'; font-size:14px">  应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG&#26684;式。在线帮助文档</span><span style="font-family:'Microsoft YaHei'"><a target="_blank" href="http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html">http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html</a></span></p>
 <p style="text-align:left"><span style="font-family:'Microsoft YaHei'; font-size:14px">  在这里我们将通过一些实例,学习掌握读取、新建、更新,其中也包括常见&#26684;式的设置:字体、颜色、背景、合并单元&#26684;等操作,有这些其实已经基本足够应付大部分问题了。</span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 3.1环境配置</h3>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  3.1.1下载</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  下载地址&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.andykhan.com/jexcelapi/">
 http://www.andykhan.com/jexcelapi/</a></span></p>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  3.1.2 加入jar包</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  将jxl.jar拷贝到项目的Lib下</span></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 3.2 使用Java Excel Api 导出 Excel文件</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  下面我们在看如何使用Java Excel实现导出Excel表&#26684;?</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  代码如下:(实际开发中应封装到业务层组件中,然后在控制层中调用。这里直接写在控制层组件,如Servlet的doGet/doPost方法或Struts框架的execute方法中)</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px"></span><pre name="code" class="java">//获得输出流,该输出流的输出介质是客户端浏览器
  
 OutputStream output=response.getOutputStream();
  
 response.reset();
  
 response.setHeader(&quot;Content-disposition&quot;,&quot;attachment; filename=temp.xls&quot;);
  
 response.setContentType(&quot;application/msexcel&quot;);
  
 //创建可写入的Excel工作薄,且内容将写入到输出流,并通过输出流输出给客户端浏览
  
 WritableWorkbook wk=Workbook.createWorkbook(output);
  
  
 ///创建可写入的Excel工作表
  
 WritableSheet sheet=wk.createSheet(&quot;成绩表&quot;, 0);
  
 //把单元格(column, row)到单元格(column1, row1)进行合并。
  
 //mergeCells(column, row, column1, row1);
  
 sheet.mergeCells(0,0, 4,0);//单元格合并方法
  
 //创建WritableFont 字体对象,参数依次表示黑体、字号12、粗体、非斜体、不带下划线、亮蓝色
  
 WritableFont titleFont=new WritableFont(WritableFont.createFont(&quot;黑体&quot;),12,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.LIGHT_BLUE);
  
 //创建WritableCellFormat对象,将该对象应用于单元格从而设置单元格的样式
  
 WritableCellFormat titleFormat=new WritableCellFormat();
  
 //设置字体格式
  
 titleFormat.setFont(titleFont);
  
 //设置文本水平居中对齐
  
 titleFormat.setAlignment(Alignment.CENTRE);
  
 //设置文本垂直居中对齐
  
 titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
  
 //设置背景颜色
  
 titleFormat.setBackground(Colour.GRAY_25);
  
 //设置自动换行
  
 titleFormat.setWrap(true);
  
 //添加Label对象,参数依次表示在第一列,第一行,内容,使用的格式
  
 Label lab_00=new Label(0,0,&quot;学员考试成绩一览表&quot;,titleFormat);
  
 //将定义好的Label对象添加到工作表上,这样工作表的第一列第一行的内容为‘学员考试成绩一览表’并应用了titleFormat定义的样式
  
 sheet.addCell(lab_00);
  
 WritableCellFormat cloumnTitleFormat=new WritableCellFormat();
  
 cloumnTitleFormat.setFont(new WritableFont(WritableFont.createFont(&quot;宋体&quot;),10,WritableFont.BOLD,false));
  
 cloumnTitleFormat.setAlignment(Alignment.CENTRE);
  
 Label lab_01=new Label(0,1,&quot;姓名&quot;,cloumnTitleFormat);
  
 Label lab_11=new Label(1,1,&quot;班级&quot;,cloumnTitleFormat);
  
 Label lab_21=new Label(2,1,&quot;笔试成绩&quot;,cloumnTitleFormat);
  
 Label lab_31=new Label(3,1,&quot;上机成绩&quot;,cloumnTitleFormat);
  
 Label lab_41=new Label(4,1,&quot;考试日期&quot;,cloumnTitleFormat);
  
 sheet.addCell(lab_01);
  
 sheet.addCell(lab_11);
  
 sheet.addCell(lab_21);
  
 sheet.addCell(lab_31);
  
 sheet.addCell(lab_41);
  
 sheet.addCell(new Label(0,2,&quot;李明&quot;));
  
 sheet.addCell(new Label(1,2,&quot;As178&quot;));
  
 //定义数字格式
  
 NumberFormat nf=new NumberFormat(&quot;0.00&quot;);
  
 WritableCellFormat wcf=new WritableCellFormat(nf);
  
 //类似于Label对象,区别Label表示文本数据,Number表示数值型数据
  
 Number numlab_22=new Number(2,2,78,wcf);
  
 sheet.addCell(numlab_22);
  
 sheet.addCell(newNumber(3,2,87,new WritableCellFormat(new NumberFormat(&quot;#.##&quot;) )));
  
 //定义日期格式
  
 DateFormat df=new DateFormat(&quot;yyyy-MM-dd hh:mm:ss&quot;);
  
 //创建WritableCellFormat对象
  
 WritableCellFormat datewcf=new WritableCellFormat(df);
  
 //类似于Label对象,区别Label表示文本数据,DateTime表示日期型数据
  
 DateTime dtLab_42=new DateTime(4,2,new Date(),datewcf);
  
 sheet.addCell(dtLab_42);
  
 //将定义的工作表输出到之前指定的介质中(这里是客户端浏览器)
  
 wk.write();
  
 //操作完成时,关闭对象,释放占用的内存空间
  
 wk.close();
 加下划线这部分代码是B/S模式中采用的输出方式,而不是输出到本地指定的磁盘目录。该代码表示将temp.xls的Excel文件通过应答实体(response)输出给请求的客户端浏览器,下载到客户端本地(保存或直接打开)。若要直接输出到磁盘文件可采用下列代码替换加下划线这部分代码
 File file=new File(&quot;D://temp.xls&quot;);
 WritableWorkbook wwb = Workbook.createWorkbook(file); </pre></p>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 3.3高级操作</h3>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  3.3.1数据&#26684;式化</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用即可。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  数据的&#26684;式化涉及到的是字体、粗细、字号等元素,这些功能主要由 WritableFont和WritableCellFormat类来负责。例如:</span></p>
 <blockquote>
 <p align="left"><span style="font-family:'Microsoft YaHei'; font-size:14px">① WritableFont font=new WritableFont(WritableFont.createFont(&quot;宋体&quot;),12,WritableFont.NO_BOLD );</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">② WritableCellFormat format1=new WritableCellFormat(font);</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">③ Label label=new Label(0,0,”data 4 test”,format1);</span></p>
 </blockquote>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  其中</span></p>
 <blockquote>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">I.指定了字串&#26684;式:字体为宋体,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">II. 处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元&#26684;的各种属性,如上例代码所示。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">III. 处使用了Label类的构造子,指定了显示的位置,文本内容,字串被赋予的&#26684;式。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">与Label类&#20284;的Number、DateTime,区别Label表示文本数据;Number表示数&#20540;数据,可使NumberFormat&#26684;式化数据;用DateTime表示日期型数据,可应用DateFormat&#26684;式化数据。</span></p>
 </blockquote>
 <h3><span style="font-family:'Microsoft YaHei'; font-size:14px">  3.3.2单元&#26684;操作</span></h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  Excel中很重要的一部分是对单元&#26684;的操作,比如行高、列宽、单元&#26684;合并等,所幸jExcelAPI提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。</span></p>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px"><strong>  1、 合并单元&#26684;</strong></span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">WritableSheet.mergeCells(int m,int n,int p,int q);
  
 //作用是从(m,n)到(p,q)的单元格全部合并,比如:
  
 WritableSheet sheet=book.createSheet(“第一页”,0);
  
 //合并第一列第一行到第六列第一行的所有单元格
  
 sheet.mergeCells(0,0,5,0);
  
 //合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。</pre></pre>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px"><strong>  2、 行高和列宽</strong></span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java"> writableSheet.setRowView(int i,int height);
  
 //作用是指定第i+1行的高度,比如:
  
 // 将第一行的高度设为200
  
 sheet.setRowView(0,200);
  
 WritableSheet.setColumnView(int i,int width);
  
 //作用是指定第i+1列的宽度,比如:
  
 //将第一列的宽度设为30
  
 sheet.setColumnView(0,30); </pre></pre>
 </div>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 3.4  从Excel文件读取数据表</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  我们就以导入3.2所产生的excel表为例,掌握如何编写导入Excel代码(该代码封装在业务层方法</span>)</p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">public List&lt;ScoreInfo&gt; loadScoreInfo(String xlsPath) throws IOException, BiffException{
  
 //导入已存在的Excel文件,获得只读的工作薄对象
 FileInputStream fis=new FileInputStream(xlsPath);
 Workbook wk=Workbook.getWorkbook(fis);
 //获取第一张Sheet表
 Sheet sheet=wk.getSheet(0);
 //获取总行数
 int rowNum=sheet.getRows();
 //从数据行开始迭代每一行
 for(int i=2;i&lt;rowNum;i++){
 ScoreInfo info=new ScoreInfo();
 //getCell(column,row),表示取得指定列指定行的单元格(Cell)
 //getContents()获取单元格的内容,返回字符串数据。适用于字符型数据的单元格
 //使用实体类封装单元格数据
 info.setStuName(sheet.getCell(0, i).getContents());
 info.setClassName(sheet.getCell(1, i).getContents());
 //判断单元格的类型,单元格主要类型LABEL、NUMBER、DATE if(sheet.getCell(2,i).getType==CellType.NUMBER){
  
 //转化为数值型单元格
 NumberCell numCell=(NumberCell)sheet.getCell(2,i);
 //NumberCell的getValue()方法取得单元格的数值型数据
 info.setRscore(numCell.getValue());
  
 }
 if(sheet.getCell(3,i).getType==CellType.NUMBER){
 NumberCell numCell=(NumberCell)sheet.getCell(3,i);
 info.setRscore(numCell.getValue);
 }
  
 if(sheet.getCell(4,i).getType==CellType.DATE){
 DateCell dateCell=(DateCell)sheet.getCell(4,i);
 //DateCell的getDate()方法取得单元格的日期型数据
 info.setDate(dateCell.getDate());
 }
 }
 fis.close();
 wk.close();
 }</pre></pre>
 </div>
 <h3 style="padding:5px 0px; color:#3399cc; font-size:18px; font-family:微软雅黑,宋体,黑体,Arial; height:25px; line-height:25px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#3399cc; margin:15px!important">
 3.4  更新已存在的Excel文件</h3>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  将3.2所产生的excel表(temp.xls)的第一条记录(excel文件的指第三行)的班级名称改为As179,代码如下:</span></p>
 <div class="cnblogs_code">
 <pre><pre name="code" class="java">File file=new File(&quot;d://temp.xls&quot;);
 //导入已存在的Excel文件,获得只读的工作薄对象
 Workbook wk=Workbook.getWorkbook(file);
 //根据只读的工作薄对象(wk)创建可写入的Excel工作薄对象
 WritableWorkbook wwb=Workbook.createWorkbook(file, wk);
 //读取第一张工作表
 WritableSheet sheet=wwb.getSheet(0);
 ///获得要编辑的单元格对象
 WritableCell cell=sheet.getWritableCell(1, 2);
 //判断单元格的类型, 做出相应的转化
 if(cell.getType()==CellType.LABEL){
 Label lable=(Label)cell;
 //修改单元格的内容
 lable.setString(&quot;As179&quot;);
 }
 wwb.write();
 wwb.close();
 wk.close(); </pre></pre>
 </div>
 <p><span style="font-family:'Microsoft YaHei'; font-size:14px">  对于更新已存在的Excel文件实际上就是获取已有工作薄对象(但是只读的),然后将获取的只读的工作薄对象转化为可写入的Excel工作薄对象(WritableWorkbook ),其他部分就是通过可写入WritableSheet 对象和可写入WritableCell 对象进行编辑。</span></p>
  
 </div>
  
  
  
  
 <!-- Baidu Button BEGIN -->
  
  
  
  
 <div class="bdsharebuttonbox tracking-ad" style="float: right;" data-mod="popu_172">
 <a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important"></a>
 <a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important"></a>
 <a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"style="background-position:0 -104px !important"></a>
 <a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"style="background-position:0 -260px !important"></a>
 <a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"style="background-position:0 -208px !important"></a>
 <a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"style="background-position:0 -1612px !important" ></a>
 </div>
 <script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
 <!-- Baidu Button END -->
  
  
  
  
 <!--172.16.140.14-->
  
 <!-- Baidu Button BEGIN -->
 <script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=1536434" ></script>
 <script type="text/javascript" id="bdshell_js"></script>
 <script type="text/javascript">
 document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
 </script>
 <!-- Baidu Button END -->
  
 <script type="text/javascript">
 var fromjs = $("#fromjs");
 if (fromjs.length > 0) {
 $("#fromjs .markdown_views pre").addClass("prettyprint");
 prettyPrint();
  
 $('pre.prettyprint code').each(function () {
 var lines = $(this).text().split('\n').length;
 var $numbering = $('<ul/>').addClass('pre-numbering').hide();
 $(this).addClass('has-numbering').parent().append($numbering);
 for (i = 1; i <= lines; i++) {
 $numbering.append($('<li/>').text(i));
 };
 $numbering.fadeIn(1700);
 });
  
 $('.pre-numbering li').css("color", "#999");
 }
  
  
 $(".markdown_views a[target!='_blank']").attr("target", "_blank");
  
 $(".toc a[target='_blank']").attr("target", "");
  
  
  
 </script>
  
  
  
  
 <div id="digg" ArticleId="45195359" >
 <dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">
  
 <dt></dt>
 <dd>3</dd>
 </dl>
  
  
 <dl id="btnBury" class="digg digg_enable" onclick="btnburya();">
  
 <dt></dt>
 <dd>0</dd>
 </dl>
  
 </div>
 <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" >&nbsp;</a> </div>
 <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" >&nbsp;</a></div>
 <script type="text/javascript">
 function btndigga() {
 $(".tracking-ad[data-mod='popu_222'] a").click();
 }
 function btnburya() {
 $(".tracking-ad[data-mod='popu_223'] a").click();
 }
 </script>
  
 <ul class="article_next_prev">
 <li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/jerehedu/article/details/45195295';">上一篇</span><a href="/jerehedu/article/details/45195295" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">IOS开发中多线程的使用</a></li>
 <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/jerehedu/article/details/45195467';">下一篇</span><a href="/jerehedu/article/details/45195467" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">IOS数据持久化之归档NSKeyedArchiver</a></li>
 </ul>
  
 <div style="clear:both; height:10px;"></div>
  
  
 <div class="similar_article" >
 <h4></h4>
 <div class="similar_c"style="margin:20px 0px 0px 0px">
 <div class="similar_c_t">
 &nbsp;&nbsp;相关文章推荐
 </div>
  
 <div class="similar_wrap tracking-ad" data-mod="popu_36" style="max-height:195px;">
 <ul class="similar_list fl">
 <li>
 <em></em>
 <a href="http://blog.csdn.net/hgy413/article/details/6598043" title="3.IDA-数据显示窗口(导出窗口、导入窗口、String窗口、...窗口)" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">3.IDA-数据显示窗口(导出窗口、导入窗口、String窗口、...窗口)</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/liuliuniu1987/article/details/6184588" title="HOWTO: 使用命令行方式导入导出多语言String Tables" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">HOWTO: 使用命令行方式导入导出多语言String Tables</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/JQ_AK47/article/details/52727727" title="關於JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">關於JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/xyc_csdn/article/details/72582016" title="关于Java的String字符串常量的长度问题" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">关于Java的String字符串常量的长度问题</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq516230226/article/details/72017415" title="Java 中 String 类的常用方法" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">Java 中 String 类的常用方法</a>
 </li>
 </ul>
 <ul class="similar_list fr">
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq_36503884/article/details/71603367" title="Java String字符串自动填补0或空格" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">Java String字符串自动填补0或空格</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/u011277123/article/details/71600469" title="Java String探索" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">Java String探索</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq_36752632/article/details/71601284" title="使用封装类进行转换时候报错,java.lang.NumberFormatException: For input string: &quot;&quot;" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">使用封装类进行转换时候报错,java.lang.NumberFormatException: For input string: &quot;&quot;</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/u010296640/article/details/52809878" title="java正则表达式、命令行参数、String常用方法" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">java正则表达式、命令行参数、String常用方法</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/u013276277/article/details/72377229" title="JAVA中int,string,char之间的互相转换" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">JAVA中int,string,char之间的互相转换</a>
 </li>
 </ul>
 </div>
 </div>
 </div>
  
 </div>
  
 <div>
  
  
 <script type="text/javascript">
 /*博客内容页下方Banner1-960*90,创建于2016-12-13*/
 var cpro_id = "u2843955";
 </script>
 <script type="text/javascript" src="http://cpro.baidustatic.com/cpro/ui/c.js"></script>
 </div>
  
 <div id="suggest"></div>
 <script language="javascript" type='text/javascript'>
 $(function(){
 $.get("/JerehEdu/svc/GetSuggestContent/45195359",function(data){
 $("#suggest").html(data);
 });
 });
 </script>
  
  
 <style>
 .blog-ass-articl dd {
 color: #369;
 width: 99%; /*修改行*/
 float: left;
 overflow: hidden;
 font: normal normal 12px/23px "SimSun";
 height: 23px;
 margin: 0;
 padding: 0 0 0 10px;
 margin-right: 30px;
 background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
 }
 </style>
  
  
 <div id="relate" data-mod="popu_218" class="tracking-ad">
 <div class="relate_t">
 <h3><span>参考知识库</span></h3>
 </div>
 <div class="relate_c">
 </div>
 </div>
  
  
 <dl class="blog-ass-articl tracking-ad" id="res-relatived" data-mod="popu_84" >
 <div class="embody embody_b" id="libkeyparent" style="display:none">
 <span class="embody_t">更多资料请参考:</span>
 <div class="embody_c" id="libkey"></div>
 </div>
  
  
 <dt><span>猜你在找</span></dt>
  
  
  
  
  
 <div id="adcollegedata" style="display:none"></div>
  
 <div id="adCollege" style="width: 42%;float: left;">
 </div>
  
  
 <div id="resforAd" style="width: 42%;float: left;margin-right: 30px;"></div>
  
 <script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script>
 <script type="text/javascript">
 csdn.position.showEdu({
 sourceType: "blog",
 searchType: "detail",
 searchKey: "45195359",
 username: "lzl110110",
 recordcount: "10",
 containerId: "adcollegedata" //容器DIV的id。
 });
  
 //setEduLoc();
  
 //function setEduLoc() {
 // var edus = $("#adCollege div dd a");
 // if (edus.length == 0) {
 // setTimeout(function () {
 // setEduLoc();
 // }, 500);
 // }
 // else {
 // var eduLoc = "?ref=blog&loc=0";
 // $.each(edus, function (index, item) {
 // var href = $(this).attr("href") + eduLoc;
 // $(this).attr("href", href);
 // });
 // }
 //}
  
  
 setTimeout(function () {
 var adcolleges = $("#adcollegedata div dd");
 for (var i = 0; i < adcolleges.length; i++) {
 if (i < 5) {
 $("#adCollege").append("<dd>" + $(adcolleges[i]).html() + "</dd");
 }
 else {
 $("#resforAd").append("<dd>" + $(adcolleges[i]).html() + "</dd");
 }
 }
 }, 1500);
  
  
 </script>
  
 </dl>
  
  
  
  
  
 <div id="ad_cen">
 <div>
 <div class="tracking-ad" data-view="true" data-mod="ad_popu_199" data-mtp="43" data-order="114" data-con="ad_content_1843" style="width: 960px; height: 90px;">
 <script type="text/javascript">
 /*博客内容页下方Banner2-960*90,创建于,2016-11-28*/
 var cpro_id = "u2831143";
 </script>
 <script type="text/javascript" src="http://cpro.baidustatic.com/cpro/ui/c.js"></script>
 </div>
 </div>
 </div>
  
 <!-- 广告位开始 -->
 <!-- 广告位结束 -->
 <div class="tracking-ad" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072">
 <script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="defer" type="text/javascript"></script>
 <div id="layerd" style="position: fixed;bottom:0px;right:0px;line-height:0px;z-index:1000">
 <div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 --><div id="cpro_u2895327"></div></div>
 <script> document.getElementById("popuLayer_js_q").οnlοad=function(){ var styObjd=styObj={width:"300px","height":parseInt(250)+28};window.CSDN.Layer.PopuLayer("#layerd",{storageName:"layerd",styleObj:styObjd,total:50,expoire:1000*60}); }</script><!-- 投放代码 --><script type="text/javascript"> /*服务器频道首页置顶Banner960*90,创建于2014-7-3*/ (window.cproArray = window.cproArray || []).push({ id: "u2895327" }); </script> <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script>
  
 </div>
  
 <div class="comment_class">
 <div id="comment_title" class="panel_head">
 <span class="see_comment">查看评论</span><a name="comments"></a></div>
 <div id="comment_list">
 </div>
 <div id="comment_bar">
 </div>
 <div id="comment_form">
 </div>
 <div class="announce">
 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
 </div>
  
 <script type="text/javascript">
 var fileName = '45195359';
 var commentscount = 1;
 var islock = false
 </script>
  
 <div id="ad_bot">
 </div>
 <div id="report_dialog">
 </div>
  
 <div id="d-top" style="bottom:60px;">
  
 <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
 <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
 </a>
 <a id="d-top-a" class="btn btn-top backtop" style="display: none;" title="返回顶部" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])" style="">
 <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
 </a>
 </div>
 <script type="text/javascript">
 $(function ()
 {
 $("#ad_frm_0").height("90px");
  
 setTimeout(function(){
 $("#ad_frm_2").height("200px");
 },1000);
 });
  
 </script>
 <style type="text/css">
 .tag_list
 {
 background: none repeat scroll 0 0 #FFFFFF;
 border: 1px solid #D7CBC1;
 color: #000000;
 font-size: 12px;
 line-height: 20px;
 list-style: none outside none;
 margin: 10px 2% 0 1%;
 padding: 1px;
 }
 .tag_list h5
 {
 background: none repeat scroll 0 0 #E0DBD3;
 color: #47381C;
 font-size: 12px;
 height: 24px;
 line-height: 24px;
 padding: 0 5px;
 margin: 0;
 }
 .tag_list h5 a
 {
 color: #47381C;
 }
 .classify
 {
 margin: 10px 0;
 padding: 4px 12px 8px;
 }
 .classify a
 {
 margin-right: 20px;
 white-space: nowrap;
 }
 </style>
  
  
 <div class="tag_list" style="display:none"></div>
 <script type='text/javascript'>
 $(function(){
 setTimeout(function(){
 $.get("/JerehEdu/svc/GetTagContent",function(data){
 $(".tag_list").html(data).show();
 });
 });
 },500);
 </script>
  
  
 <div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
  
 </div>
 <div id="popup_mask"></div>
 <style>
 #popup_mask
 {
 position: absolute;
 width: 100%;
 height: 100%;
 background: #000;
 z-index: 9999;
 left: 0px;
 top: 0px;
 opacity: 0.3;
 filter: alpha(opacity=30);
 display: none;
 }
  
 </style>
  
  
  
  
 <script type="text/javascript">
 $(function(){
  
 setTimeout(function(){
 $(".comment_body:contains('回复')").each(function(index,item){
 var u=$(this).text().split(':')[0].toString().replace("回复","")
 var thisComment=$(this);
 if(u)
 {
 $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
 if(a!=null&&a.data!=null&&a.data.length>0)
 {
 nick=a.data[0].n;
 if(u!=nick)
 {
 thisComment.text(thisComment.text().replace(u,nick));
 }
 }
 });
 }
 });
  
 },200);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },5000);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },10000);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },15000);
  
 setTimeout(function(){
 $("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
 },300);
 });
  
 function loginbox(){
 var $logpop=$("#pop_win");
 $logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');
  
 $('#popup_mask').css({
 opacity: 0.5,
 width: $( document ).width() + 'px',
 height: $( document ).height() + 'px'
 });
 $('#popup_mask').css("display","block");
  
 $logpop.css( {
 top: ($( window ).height() - $logpop.height())/ 2 + $( window
 ).scrollTop() + 'px',
 left:($( window ).width() - $logpop.width())/ 2
 } );
  
 setTimeout( function () {
 $logpop.show();
 $logpop.css( {
 opacity: 1
 } );
 }, 200 );
  
 $('#popup_mask').unbind("click");
 $('#popup_mask').bind("click", function(){
 $('#popup_mask').hide();
 var $clopop = $("#pop_win");
 $("#common_ask_div_sc").css("display","none");
 $clopop.css( {
 opacity: 0
 } );
 setTimeout( function () {
 $clopop.hide();
 }, 350 );
 return false;
 });
 }
  
 var articletitle='Java中导入、导出Excel';
  
 </script>
  
  
  
  
  
  
  
  
 <div class="clear">
 </div>
 </div>
  
 </div>
  
 <div id="side">
  
 <div class="side">
 <div id="panel_Profile" class="panel">
 <ul class="panel_head"><span>个人资料</span></ul>
 <ul class="panel_body profile">
 <div id="blog_userface">
 <a href="http://my.csdn.net/JerehEdu" target="_blank">
 <img src="http://avatar.csdn.net/9/5/4/1_jerehedu.jpg" title="访问我的空间" style="max-width:90%"/>
 </a>
 <br />
 <span><a href="http://my.csdn.net/JerehEdu" class="user_name" target="_blank">JerehEdu</a></span>
 </div>
 <div class="interact">
  
 <a href="javascript:void(0);" class="attent" id="span_add_follow" title="[加关注]"></a>
  
 <a href="javascript:void(0);" class="letter" title="[发私信]" onclick="window.open('http://msg.csdn.net/letters/model?receiver=JerehEdu','_blank','height=350,width=700');_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_sixin'])"></a>
 </div>
 <div id="blog_medal">
 <div id="bms_box">
 </div>
 </div>
 <ul id="blog_rank">
 <li>访问:<span>86235次</span></li>
 <li>积分:<span>2359</span> </li>
 <li >等级: <span style="position:relative;display:inline-block;z-index:1" >
 <img src="http://c.csdnimg.cn/jifen/images/xunzhang/jianzhang/blog5.png" alt="" style="vertical-align: middle;" id="leveImg">
 <div id="smallTittle" style=" position: absolute; left: -24px; top: 25px; text-align: center; width: 101px; height: 32px; background-color: #fff; line-height: 32px; border: 2px #DDDDDD solid; box-shadow: 0px 2px 2px rgba (0,0,0,0.1); display: none; z-index: 999;">
 <div style="left: 42%; top: -8px; position: absolute; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 8px solid #EAEAEA;"></div>
 积分:2359 </div>
 </span> </li>
 <li>排名:<span>第14494名</span></li>
 </ul>
 <ul id="blog_statistics">
 <li>原创:<span>151篇</span></li>
 <li>转载:<span>0篇</span></li>
 <li>译文:<span>0篇</span></li>
 <li>评论:<span>27条</span></li>
 </ul>
 </ul>
 </div>
  
  
 <div class="panel" id="panel_Search">
 <ul class="panel_head"><span>文章搜索</span></ul>
 <ul class="panel_body" class="form_search">
 <form id="frmSearch" action="http://so.csdn.net/search" class="form_search csdn-tracking-statistics" target="_blank" data-mod="popu_306">
 <span><input id="inputSearch" type="text" class="blogsearch" title="请输入关键字" /></span>
 <input id="btnSubmit" type="button" value="搜索" title="search in blog" />
 <input type="hidden" name="q" id="inputQ" />
 <input type="hidden" name="t" value="blog" />
 <a id="btnSearchBlog" target="_blank"></a>
 </form>
 </ul>
 </div>
  
 <script type="text/javascript">
  
  
 $(function () {
 $("#btnSubmit").unbind("click");
 $("#btnSubmit").click(function () {
 search();
 });
  
 $("#frmSearch").submit(function () {
 search();
 return false;
 });
  
 function search()
 {
 if ($("#inputSearch").val() == "") {
 alert("请录入搜索关键词!");
 return false;
 }
 //var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog";
 var url = "https://www.baidu.com/s?wd=" + encodeURIComponent($("#inputSearch").val()) + "%20site%3Ablog.csdn.net"
 window.location.href = url;
 }
 });
 </script><div id="panel_Category" class="panel">
 <ul class="panel_head"><span>文章分类</span></ul>
 <ul class="panel_body">
 <li>
 <a href="/JerehEdu/article/category/2807943" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Android技术分享</a><span>(82)</span>
 </li>
 <li>
 <a href="/JerehEdu/article/category/2807945" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">IOS技术分享</a><span>(54)</span>
 </li>
 <li>
 <a href="/JerehEdu/article/category/2807947" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">java技术分享</a><span>(15)</span>
 </li>
 <li>
 <a href="/JerehEdu/article/category/6076723" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">原创教材</a><span>(1)</span>
 </li>
 </ul>
 </div><div id="hotarticls" class="panel">
 <ul class="panel_head">
 <span>
 阅读排行 </span>
 </ul>
  
 <ul class="panel_body itemlist">
 <li>
 <a href="/jerehedu/article/details/45192091" title="SVN详细配置与使用 ——一步步教会您使用">SVN详细配置与使用 ——一步步教会您使用</a><span>(2192)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45195359" title="Java中导入、导出Excel">Java中导入、导出Excel</a><span>(2106)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/46911955" title="Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换">Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换</a><span>(1928)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45746369" title="Android生成带图片的二维码">Android生成带图片的二维码</a><span>(1556)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45196019" title="Android实现图片轮显效果——自定义ViewPager控件">Android实现图片轮显效果——自定义ViewPager控件</a><span>(1408)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45822251" title="Android实现仿qq侧边栏效果">Android实现仿qq侧边栏效果</a><span>(1219)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/47319345" title="Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换">Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换</a><span>(1188)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45196185" title="Android studio导入开源项目">Android studio导入开源项目</a><span>(1138)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45196125" title="IOS实现自动循环滚动广告--ScrollView的优化和封装">IOS实现自动循环滚动广告--ScrollView的优化和封装</a><span>(1012)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45390165" title="微信二维码扫描下载APK">微信二维码扫描下载APK</a><span>(1002)</span>
 </li>
 </ul>
 </div>
 <div id="hotarticls2" class="panel">
 <ul class="panel_head"><span>评论排行</span></ul>
 <ul class="panel_body itemlist">
 <li>
 <a href="/jerehedu/article/details/45196019" title="Android实现图片轮显效果——自定义ViewPager控件">Android实现图片轮显效果——自定义ViewPager控件</a><span>(4)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/46911955" title="Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换">Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换</a><span>(3)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45193205" title="Android界面设计之对话框——定制Toast、AlertDialog">Android界面设计之对话框——定制Toast、AlertDialog</a><span>(2)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/47021541" title="Android GUI之Activity、Window、View">Android GUI之Activity、Window、View</a><span>(2)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45196185" title="Android studio导入开源项目">Android studio导入开源项目</a><span>(2)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45746369" title="Android生成带图片的二维码">Android生成带图片的二维码</a><span>(2)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45195553" title="ActionBar+DrawerLayout实现网易新闻客户端首页">ActionBar+DrawerLayout实现网易新闻客户端首页</a><span>(1)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45716123" title="基于VlC的视频播放器">基于VlC的视频播放器</a><span>(1)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45191863" title="使用极光推送实现分组发送和服务端集成">使用极光推送实现分组发送和服务端集成</a><span>(1)</span>
 </li>
 <li>
 <a href="/jerehedu/article/details/45390165" title="微信二维码扫描下载APK">微信二维码扫描下载APK</a><span>(1)</span>
 </li>
 </ul>
 </div>
 <div id="newcomments" class="panel">
 <ul class="panel_head"><span>最新评论</span></ul>
 <ul class="panel_body itemlist">
 <li>
  
 <a href="/jerehedu/article/details/45196019#comments">Android实现图片轮显效果——自定义ViewPager控件</a>
 <p style="margin:0px;"><a href="/qq_24578531" class="user_name">qq_24578531</a>:
 myPager.start方法里的参数能分别解释下吗
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/45196019#comments">Android实现图片轮显效果——自定义ViewPager控件</a>
 <p style="margin:0px;"><a href="/Cat_swam" class="user_name">Cat_swam</a>:
 那个我是个Android新手 ,请问一下 com.jereh.view.&#160;MyScrollImage...
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/45195359#comments">Java中导入、导出Excel</a>
 <p style="margin:0px;"><a href="/gdfy0616" class="user_name">gdfy0616</a>:
 太好了!多谢分享啊!介绍的真是全面
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46453371#comments">android实现gif图与文字混排</a>
 <p style="margin:0px;"><a href="/qq_25211337" class="user_name">qq_25211337</a>:
 内存溢出
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46424813#comments">Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)</a>
 <p style="margin:0px;"><a href="/roadcow" class="user_name">roadcow</a>:
 右边能显示菜单吗?
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46424813#comments">Android实现图片轮显效果——自定义ViewPager控件</a>
 <p style="margin:0px;"><a href="/Amazing_Kenboo" class="user_name">Amazing_Kenboo</a>:
 @android_I_t:正好我也看到这里,楼主在注释里面说了* @param mainActivi...
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46424813#comments">Android实现图片轮显效果——自定义ViewPager控件</a>
 <p style="margin:0px;"><a href="/android_I_t" class="user_name">android_I_t</a>:
 mainActivit中 myPager.start第六个参数获取不到啊
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46911955#comments">Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换</a>
 <p style="margin:0px;"><a href="/CTU24CAT" class="user_name">CTU24CAT</a>:
 感觉很有用 ,谢谢了!
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/46236013#comments">使用ECharts实现数据图表分析</a>
 <p style="margin:0px;"><a href="/Renfr" class="user_name">Renfr</a>:
 
 </p>
 </li>
 <li>
  
 <a href="/jerehedu/article/details/45365531#comments">NSURLSession下载和断点续传</a>
 <p style="margin:0px;"><a href="/iOS_MingXing" class="user_name">iOS_MingXing</a>:
 NSURL * url=这个是做什么的啊?????
 </p>
 </li>
 </ul>
 </div>
 <div id="panel_Archive" class="panel">
 <ul class="panel_head"><span>文章存档</span></ul>
 <ul class="panel_body">
 <div id="archive_list">
 <!--归档统计-->
 <li><a href="/JerehEdu/article/month/2016/02">2016年02月</a><span>(18)</span></li><li><a href="/JerehEdu/article/month/2016/01">2016年01月</a><span>(2)</span></li><li><a href="/JerehEdu/article/month/2015/10">2015年10月</a><span>(9)</span></li><li><a href="/JerehEdu/article/month/2015/08">2015年08月</a><span>(10)</span></li><li><a href="/JerehEdu/article/month/2015/07">2015年07月</a><span>(16)</span></li><li><a href="/JerehEdu/article/month/2015/06">2015年06月</a><span>(20)</span></li><li><a href="/JerehEdu/article/month/2015/05">2015年05月</a><span>(20)</span></li><li><a href="/JerehEdu/article/month/2015/04">2015年04月</a><span>(57)</span></li>
 </div>
 </ul>
 </div>
 <div id="homepageArticles" class="panel tracking-ad" data-mod="popu_4">
 <ul class="panel_head"><span>推荐文章</span></ul>
 <ul class="panel_body" id="ad_commend">
 <ul>
 <li><a href="http://blog.csdn.net/turingbooks/article/details/72416875" target="_blank">* 5月书讯:流畅的Python,终于等到你!</a></li>
 <li><a href="http://blog.csdn.net/blogdevteam/article/details/72526177"
 target="_blank">*【新收录】CSDN日报 —— Kotlin 专场</a></li>
 <li><a href="http://blog.csdn.net/jiangwei0910410003/article/details/70483088"target="_blank">* Android中带你开发一款自动爆破签名校验工具kstools</a></li>
 <li><a href="http://blog.csdn.net/guolin_blog/article/details/54895665"
 target="_blank">* Android图片加载框架最全解析——深入探究Glide的缓存机制</a></li>
 <li><a href="http://blog.csdn.net/lmj623565791/article/details/72667669"
 target="_blank">* Android 热修复 Tinker Gradle Plugin解析</a></li>
 <li><a href="http://blog.csdn.net/puppet_master/article/details/72455945"
 target="_blank">* Unity Shader-死亡溶解效果</a></li>
  
 </ul></ul>
 </div>
  
  
 </div>
 <div class="clear">
 </div>
  
  
 <!-- 广告位开始 -->
 <!-- 广告位结束 -->
 <div class="tracking-ad" data-view="true" data-mod="ad_popu_189" data-mtp="63" data-order="40" data-con="ad_content_1259" style="width: 250px; height: 250px;">
 <div id="nav_show_top_stop" style="width: 250px;height: 250px;z-index:1000"><div id="cpro_u2734133"></div></div>
 </div>
 <script>
  
 setTimeout(function () {
 var naviga_offsetTop = 0; function naviga_stay_top() {
 var scrollTop = jQuery(document).scrollTop();
 if (scrollTop > naviga_offsetTop) {
 jQuery("#nav_show_top_stop").css({ "position": "fixed" });
 jQuery("#nav_show_top_stop").css({ "top": "0px" });
 } else { jQuery("#nav_show_top_stop").css({ "position": "fixed" }); jQuery("#nav_show_top_stop").css({ "top": naviga_offsetTop - scrollTop + "px" }); }
 }
 function onload_function() {
 naviga_offsetTop = jQuery("#nav_show_top_stop").position().top;
 jQuery(window).bind("scroll", naviga_stay_top); jQuery(window).bind("mousewheel", naviga_stay_top);
 jQuery(document).bind("scroll", naviga_stay_top); jQuery(document).bind("mousewheel", naviga_stay_top);
 } jQuery(document).ready(onload_function);
 },200);
  
 </script>
 <script type="text/javascript"> (window.cproArray = window.cproArray || []).push({ id: "u2734133" }); </script>
 <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script>
  
 </div>
  
 <div class="clear">
 </div>
 </div>
  
  
  
 <script type="text/javascript" src="http://c.csdnimg.cn/rabbit/cnick/cnick.js"></script>
  
  
  
  
  
  
 <script type="text/javascript">
 $(function () {
 function __get_code_toolbar(snippet_id) {
 return $("<span class='tracking-ad' data-mod='popu_167'><a href='https://code.csdn.net/snippets/"
 + snippet_id
 + "' target='_blank' title='在CODE上查看代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a></span>"
 + "<span class='tracking-ad' data-mod='popu_170'><a href='https://code.csdn.net/snippets/"
 + snippet_id
 + "/fork' target='_blank' title='派生到我的代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a></span>");
 }
  
 $("[code_snippet_id]").each(function () {
 __s_id = $(this).attr("code_snippet_id");
 if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) {
 __code_tool = __get_code_toolbar(__s_id);
 $(this).prev().find(".tools").append(__code_tool);
 }
 });
  
 $(".bar").show();
 });
 </script>
  
  
  
  
  
 </div>
 <!--new top-->
  
  
 <script type="text/javascript" src="http://c.csdnimg.cn/pubfooter/js/tracking.js" charset="utf-8"></script>
  
  
 <!--new top-->
  
 <link href="http://c.csdnimg.cn/comm_ask/css/ask_float_block.css" type="text/css" rel="stylesheet" />
 <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/libs/wmd.js'></script>
 <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/libs/showdown.js'></script>
  
 <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/apps/ask_float_block.js'></script>
  
  
  
  
  
 <script type="text/javascript" src="http://ads.csdn.net/js/async_new.js"></script>
 <script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
 <script type="text/javascript" src="http://c.csdnimg.cn/rabbit/search-service/main.js"></script>
 <script type="text/javascript">
 //$(function () {
 // setTimeout(function () {
 // var searchtitletags = articletitle + ',' + $("#tags").html();
 // searchService({
 // index: 'blog',
 // query: searchtitletags,
 // from: 5,
 // size: 5,
 // appendTo: '#res',
 // url: 'recommend',
 // his: 2,
 // client: "blog_cf_enhance",
 // tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
 // });
 // }, 1000);
 //});
  
 </script>
 <script src="http://static.blog.csdn.net/scripts/csdn_blog_detail.min.js" type="text/javascript"></script>
  
 <script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=4920449"></script>
  
 <script id="csdn-toolbar-id" btnId="header_notice_num" wrapId="note1" count="5" subCount="5" type="text/javascript" src="http://c.csdnimg.cn/public/common/toolbar/js/toolbar.js"></script>
  
  
  
 <div id="a52b5334d" style="width: 1px; height: 1px; display: none;">
 <script id="adJs52b5334"></script>
 <script>document.getElementById("adJs52b5334").src = "http://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>
 </div>
  
  
 <script type="text/javascript" src="http://static.blog.csdn.net/scripts/saveToCode.js"></script>
 <script type="text/javascript" src="//c.csdnimg.cn/rabbit/tracking-ad/main.js?75eacd8"></script>
  
  
  
  
  
 <div class="pop_CA_cover" style="display:none"></div>
 <div class="pop pop_CA" style="display:none">
 <div class="CA_header">
 收藏助手
 <span class="cancel_icon" id="fapancle" onclick="$('.pop_CA').hide();$('.pop_CA_cover').hide();"></span>
 </div>
 <iframe src="" id="fa" frameborder="0" width="100%" height="360" scrolling="no" ></iframe>
 </div>
  
 </body>
 </html>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值