溜溜问答 > 日常办公 > Excel > PHP怎样读取Excel表格内容?
高傑西
高傑西
邀请你来回答
100人阅读 2022-04-22

PHP怎样读取Excel表格内容?

能给讲讲是怎样读取和PHP读取Excel时的格式和顺序?
我要回答
1个回答

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。

1. 以.csv格式读取

将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。

优点:跨平台,效率比较高、可以读写。

缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。

length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。

enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。

注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

当然也可以自己手动分析字符串。

还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。

2. ODBC链接数据源

优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。

缺点:值支持windows服务器

3. PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件

常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

不过我下载回来的 (版本 2009-03-30),有两点要注意:

reader.php 中的下面这行要修改

将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

改为 require_once ‘oleread.inc’;

example.php 中

修改 $data->setOutputEncoding(’CP1251′);

为 $data->setOutputEncoding(’CP936′);

example2.php 中

修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));

为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));

不然中文会有问题。

繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。

修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。

查看全部
2022-04-22
回复 采纳

相关问题

PHP读取Excel,Excel下多个个工作表,该怎么读取?
共2条回答 >
初心: php读取excel,excel下多个个工作表的方法:1、利用PHPExcelReader来完成多个excel的读取。2、PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel2007格式(.xlsx)文件的读取。3、下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel2007(xlsx)格式的文件:require_once'/libs/PHPExcel-1.8....
(1) 回复
PHP 读取Excel
共1条回答 >
吃土少年嘎嘎: 有一个简便的方法将数据输出到网页的table标签里面然后改变header头为excelheader("Content-type:application/vnd.ms-excel");header("Content-Disposition:attachment;filename=文件名称.xls");正式点的前端使用bootstrapTable插件导出excel后端PHP使用PHPEXCEL插件
回复
PHP远程读取Excel文件,怎么读取?
共1条回答 >
萨洛凯设计部杨登民: PHPExcel通过PHPExcel_Shared_OLERead类的read方法读取文件但read方法里使用了is_readable函数来确认文件是否存在,而is_readable不能作用于url所以不可直接远程读取但若绕过is_readable函数的话,就是可以的publicfunctionread($sFileName){//Checkiffileexistsandisreadableif(!is_readable($sFileName)){thrownewException("Could....
(2) 回复
如何读取Excel文件 PHP?
共1条回答 >
圣凡伦丁: 主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel。PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel2007的格式(.xlsx)。PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel2007格式(.xlsx)文件的读取。下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开E....
回复
PHP中如何读取一个Excel表格文件?
共1条回答 >
陈昌良--醉时尚的天堂: 一般用csv格式的文件,和他excel一样,但操作他比操作excel要简单的多了。csv文件用记事本打开其实就是以","号分割的文本文件,特别方便php操作这有个csv文件的操作方法希望对你有帮助。php生成csv文件示例http://www.phperz.com/php/php-article/0113209520102095.html
(4) 回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)