> php教程 > php手册 > 본문

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 학습자의 빠른 성장을 도와주세요!