PHP读取Excel文件内容

WBOY
リリース: 2016-06-06 16:04:02
オリジナル
1009 人が閲覧しました

项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel。

 
PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)。
 
PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。
 
下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:
 
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php';     //修改为自己的目录
echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
$objReader = PHPExcel_IOFactory::createReaderForFile($filename); 
$objPHPExcel = $objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
ログイン後にコピー

  

输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。如何通过Sheet名来获得当前Sheet我还不知道,如果有知道的可以站内我。
 
需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
 
echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
 
下面的代码显示了如何遍历显示Excel的内容:
<span style="color: #008080;"> 1</span> <table id="table_id">
<span style="color: #008080;"> 2</span> <?<span style="color: #000000;">php
</span><span style="color: #008080;"> 3</span>      <span style="color: #800080;">$objWorksheet</span> = <span style="color: #800080;">$objPHPExcel</span>-><span style="color: #000000;">getActiveSheet();
</span><span style="color: #008080;"> 4</span>      <span style="color: #800080;">$i</span> = 0<span style="color: #000000;">;
</span><span style="color: #008080;"> 5</span>      <span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$objWorksheet</span>->getRowIterator() <span style="color: #0000ff;">as</span> <span style="color: #800080;">$row</span><span style="color: #000000;">){
</span><span style="color: #008080;"> 6</span>      ?>
<span style="color: #008080;"> 7</span>           <tr>
<span style="color: #008080;"> 8</span>           <?<span style="color: #000000;">php
</span><span style="color: #008080;"> 9</span>                <span style="color: #800080;">$cellIterator</span> = <span style="color: #800080;">$row</span>-><span style="color: #000000;">getCellIterator();
</span><span style="color: #008080;">10</span>                <span style="color: #800080;">$cellIterator</span>->setIterateOnlyExistingCells(<span style="color: #0000ff;">false</span><span style="color: #000000;">);
</span><span style="color: #008080;">11</span> 
<span style="color: #008080;">12</span>                     <span style="color: #0000ff;">if</span>( <span style="color: #800080;">$i</span> == 0<span style="color: #000000;"> ){
</span><span style="color: #008080;">13</span>                          <span style="color: #0000ff;">echo</span> '<thead>'<span style="color: #000000;">;
</span><span style="color: #008080;">14</span> <span style="color: #000000;">                    }
</span><span style="color: #008080;">15</span>                <span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$cellIterator</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$cell</span><span style="color: #000000;">){
</span><span style="color: #008080;">16</span> 
<span style="color: #008080;">17</span>                     <span style="color: #0000ff;">echo</span> '<td>' . <span style="color: #800080;">$cell</span>->getValue() . '</td>'<span style="color: #000000;">;
</span><span style="color: #008080;">18</span> 
<span style="color: #008080;">19</span> <span style="color: #000000;">               }
</span><span style="color: #008080;">20</span>                     <span style="color: #0000ff;">if</span>( <span style="color: #800080;">$i</span> == 0<span style="color: #000000;"> ){
</span><span style="color: #008080;">21</span>                          <span style="color: #0000ff;">echo</span> '</thead>'<span style="color: #000000;">;
</span><span style="color: #008080;">22</span> <span style="color: #000000;">                    }
</span><span style="color: #008080;">23</span>                <span style="color: #800080;">$i</span>++<span style="color: #000000;">;
</span><span style="color: #008080;">24</span>           ?>
<span style="color: #008080;">25</span>           </tr>
<span style="color: #008080;">26</span>      <?<span style="color: #000000;">php
</span><span style="color: #008080;">27</span> <span style="color: #000000;">     }
</span><span style="color: #008080;">28</span> ?>
<span style="color: #008080;">29</span> </table>
ログイン後にコピー

 

 
参考资料:
1、PHPExcel官网
2、使用PHPExcel判断和格式化Excel中的日期
3、PHPExcel中文帮助(知识点)
4、利用PHPExcel导入导出Excel文件
5、PHPExcel常用功能指南
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!