当前位置:博客首页>>PHP >> 阅读正文

【PHP】php读取excel表格的最简单方法

作者: 郑晓 分类: PHP 发布于: 2012-10-17 23:33 浏览(6,481) 没有评论


今天有一同事问我说能不能在CRM中直接导入excel的表格进去,我说可以,虽然我之前没做过这个,但毕竟使用php来操作excel文档不是什么新鲜事,so,我稍微想了一下就表示可以,让他去准备表格吧~~

之后就去网上逛了会儿,发现大多数都是用的ExcelReader类来实现的,虽然这个东西用起来很强大,功能也多,但在某些情况下不一定就是最好的。所以在这里咱们不讨论这个excelreader类库。

不知道大家在使用excel时有没有注意到,在保存表格时的格式里有一项“.csv”~这个CSV具体是什么东东,大家可以私下里研究学习,这里仅稍微做一下科普,CSV是“逗号分隔值”的简称,说白了,它就是把数据以逗号和换行的方式保存。大家可以试着把一个简单的表格文件另存为.csv格式,之后用记事本打开看看是什么样子的~~

有了CSV就好办了,在PHP里有fgetcsv()函数,从文件指针中读入一行并解析 CSV 字段,顿时开朗了吧?来一小段代码:

<?php
$handle = fopen("demo.csv","r");
$i = 0;
$result = array();
while ($row = fgetcsv($handle, 1000, ",")) {    //第二个参数一定要比文件中最长的那一行还要长...具体参数见手册
    if( empty($row[0]) || empty($row[1]) || empty($row[2]) ) continue;  //在遇到有空值的列时 直接跳过。
    $result[$i] = $row;
    $i++;
}
echo '<pre>';
print_r($result);
?>

看这段代码和那个ExcelReader的类库相比如何??这个方法可以很轻松的读入一些比较简单的excel表格数据。不过需要注意的一点是,用fgetcsv()方法读进的文件头一列不能有中文,否则会有乱码,虽然网上说有用setlocale()函数转码的,不过我还没有研究出如何在循环中使用这个函数…我想在表格最前面加一个数字列,如序号,应该更简单一点儿吧?

↓↓↓微信扫码请我吃辣条↓↓↓

本文出自 郑晓个人博客,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/php-php-read-excel-spreadsheet-csv.html