
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。\x0d\\x0d\1 以csv格式读取\x0d\\x0d\将xls转换成csv的文本格式,然后再用PHP分析这个
文件,和PHP分析文本没有什么区别。\x0d\\x0d\优点:跨平台,效率比较高、可以读写。\x0d\\x0d\缺点:只能直接使用csv的文件,如果经常接受xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。\x0d\\x0d\PHP有自带的分析csv函数:fgetcsv\x0d\\x0d\array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )\x0d\\x0d\handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。\x0d\\x0d\length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 504 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。\x0d\\x0d\delimiter (可选)设置
字段分界符(只允许一个字符),默认值为逗号。\x0d\\x0d\enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 430 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的
数组。\x0d\\x0d\fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。\x0d\\x0d\注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。\x0d\\x0d\当然也可以自己手动分析字符串。\x0d\\x0d\还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。\x0d\\x0d\2 ODBC链接数据源\x0d\\x0d\优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。\x0d\\x0d\缺点:值支持windows服务器\x0d\\x0d\3 PHP自定义类\x0d\\x0d\优点:跨平台。某些类支持写 *** 作。支持xls二进制文件\x0d\\x0d\常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php52以上版本。\x0d\\x0d\phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。\x0d\\x0d\该 class 使用的方法可以参考网站下载回来的压缩档中的 examplephp。\x0d\\x0d\不过我下载回来的 (版本 2009-03-30),有两点要注意:\x0d\\x0d\readerphp 中的下面这行要修改\x0d\\x0d\将 require_once ‘Spreadsheet/Excel/Reader/OLEReadphp’;\x0d\\x0d\改为 require_once ‘olereadinc’;\x0d\\x0d\examplephp 中\x0d\\x0d\修改 $data->setOutputEncoding(’CP1251′);\x0d\\x0d\为 $data->setOutputEncoding(’CP936′);\x0d\\x0d\example2php 中\x0d\\x0d\修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));\x0d\\x0d\为 $table_output[$sheet] = nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));\x0d\\x0d\不然中文会有问题。\x0d\\x0d\繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。\x0d\\x0d\修改 $data->read(’jxlrwtestxls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtestxls 应该是坏了。
PHPExcelPHPExcel 是用来 *** 作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) xls, Excel 2007 (OfficeOpenXML) xlsx, CSV, Libre/OpenOffice Calc ods, Gnumeric, PDF, HTML等等。
PHP读取示例代码
//获取上传的excel临时文件
$path = $_FILES["file"]["tmp_name"];
//将临时文件移动当前目录,可自定义存储位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//将获取在服务器中的Excel文件,此处为上传文件名
$path = $_FILES["file"]["name"];
//调用readExcel函数返回一个
二维数组
$exceArray = readExcel($path);
//创建一个读取
excel函数
function readExcel($path){
//引入PHPExcel类库
include 'Classes/PHPExcelphp';
include 'Classes/PHPExcel/IOFactoryphp';
$type = 'Excel5';//设置为Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader = \PHPExcel_IOFactory::createReader($type);
$xlsReader->setReadDataOnly(true);
$xlsReader->setLoadSheetsOnly(true);
$Sheets = $xlsReader->load($path);
//开始读取上传到服务器中的Excel文件,返回一个
二维数组
$dataArray = $Sheets->getSheet(0)->
toArray();
return $dataArray;
}
评论列表(0条)