0

0

php读excel文件的方法

巴扎黑

巴扎黑

发布时间:2016-11-29 09:57:42

|

1878人浏览过

|

来源于php中文网

原创

常用的用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′); 

修改 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 应该是坏了。 

这是下载地址: 

phpexcelreader:http://sourceforge.net/projects/phpexcelreader/ 

phpexcel:http://www.codeplex.com/phpexcel/wiki/view.aspx?title=documents&referringtitle=home 

有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询、电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文 件,然后通过以下程序即可在后台批量导入数据到数据库中。 

  下面只是主要程序部分: 


//定义获取时间函数 
function getmicrotime(){ 
   list($usec, $sec) = explode(" ",microtime()); 
   return ((float)$usec + (float)$sec); 

?> 
$time_start = getmicrotime(); 
include("db.inc.php");//连接数据库 
$db=new testcsv; 
?> 
$handle = fopen ("test.csv","r"); 
$sql="insert into scores(idcard,names,num,sex,nation,score) values("; 
while ($data = fgetcsv ($handle, 1000, ",")) { 

  $num = count ($data); 
  for ($c=0; $c       if($c==$num-1){$sql=$sql.$data[$c].")";break;} 
      $sql=$sql.$data[$c].","; 
  } 
print "
"; 
echo $sql."
"; 
$db->query($sql); 
echo "sql语句执行成功!
"; 
$sql="insert into scores(idcard,names,num,sex,nation,score) values("; 

fclose ($handle); 
$time_end = getmicrotime(); 
$time = $time_end - $time_start; 
echo "程序执行时间:".$time."秒"; 
?

相关文章

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 10.8万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号