常用的用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 字段的数组,不会被当成错误。
当然也可以自己手动分析字符串。
<?php$row = 1;$handle = fopen("test.csv","r");while ($data = fgetcsv($handle, 1000, ",")) { $num = count($data); echo " $num fields in line $row:\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "\n"; }}fclose($handle);?>
还可以利用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文 件,然后通过以下程序即可在后台批量导入数据到数据库中。
下面只是主要程序部分:
<?php
//定义获取时间函数
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
?>
<?php
$time_start = getmicrotime();
include("db.inc.php");//连接数据库
$db=new testcsv;
?>
<?php
$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 < $num; $c++) {
if($c==$num-1){$sql=$sql.$data[$c].")";break;}
$sql=$sql.$data[$c].",";
}
print "<br>";
echo $sql."<br>";
$db->query($sql);
echo "sql语句执行成功!<br>";
$sql="insert into scores(idcard,names,num,sex,nation,score) values(";
}
fclose ($handle);
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo "程序执行时间:".$time."秒";
?
分享到:
相关推荐
然后创建一个`Spreadsheet_Excel_Reader`实例,并调用`read()`方法来解析Excel文件。例如: ```php require_once 'Spreadsheet_Excel_Reader.php'; $reader = new Spreadsheet_Excel_Reader(); $reader->read('...
在需要更复杂的格式化或功能时,如公式、条件格式和图表,人们通常会将CSV数据转换为Excel文件。 Excel是一款由Microsoft开发的强大电子表格应用程序,它提供了丰富的数据处理和分析工具。相比CSV,Excel支持更多的...
- `openFile()`: 这个方法用于打开指定路径的Excel文件,并进行必要的预处理,比如检查文件是否存在、是否可读等。 - `readSheet()`: 读取工作表内容的方法,可能返回一个二维数组,每个子数组代表一行数据,数组...
4. **格式化和样式**:为了使Excel文件更易读或符合特定要求,类库通常也支持设置单元格的样式,如字体、颜色、边框、对齐方式等。通过`getStyle()`和`applyFromArray()`等方法,我们可以定制单元格的外观。 5. **...
在这个示例中,`Spreadsheet_Excel_Reader`类被创建,并设置了输出编码为UTF-8,然后通过`read`方法读取名为"example.xls"的Excel文件。`$data->sheets[0]['numRows']`和`$data->sheets[0]['numCols']`分别表示Excel...
在PHP中,处理Excel文件是常见的任务,尤其在数据导入、导出或分析时。本实例将介绍如何使用PHPExcel库来读取Excel文件。PHPExcel是一个强大的PHP类库,支持多种Excel文件格式,如Excel 97-2003(.xls)和Excel 2007...
在PHP中下载Excel文件时,有时会出现下载后无法打开的问题,这通常是由于多种原因引起的。以下是一些关键的解决方法和注意事项,可以帮助你避免或修复此类问题。 首先,确保在下载过程中不输出任何非文件信息。例如...
PHP读取Excel文件中的图片是一项常见但复杂的需求,因为Excel文件本质上是一种表格数据格式,并不直接支持嵌入图片的存储。不过,通过使用专门的库,如phpspreadsheet和PHPExcel,可以间接实现这一功能。本篇文章将...
在开发Web应用时,数据处理是一项重要任务,尤其是在IT行业中,Excel文件的导入与导出功能经常被用于数据管理、数据分析以及数据交换。ThinkPHP5作为一款流行的PHP框架,为开发者提供了便捷的方式来处理这些需求。...
标题中的“excel_takenhw8_trickzft_php文件_”似乎是一个组合名词,可能是某个项目或任务的标识,其中“excel”可能与Microsoft Excel相关,而“takenhw8”可能是第八次作业或任务的代号,“trickzft”可能是指特定...
php_excel, 用于Excel写作/阅读库的PHP扩展界面 描述这里扩展使用libXl库提供用于生成或者解析所有Excel文件的API 。libxl是一种高效的处理Excel文件的机制,能够在黑莓。iPhone 。Office 产品。数字和 等等 上生成...
PHPReader是PHP编程环境中用于读取电子表格文件的一种库,它主要针对的是Excel文件(.xls格式)。这个包的核心功能是解析Excel文件的内容,将数据转化为PHP数组,以便开发者可以轻松地在PHP应用中处理这些数据。 **...
这个函数使用了JD(儒略日)与公历日期的转换,将Excel文件中存储的日期数据转换为人类可读的格式。 4. 文件路径和PHPExcel实例化: 使用变量$filePath来存储Excel文件的路径,并使用PHPExcel的构造函数来创建一个...
下面以网上书店管理系统为例,介绍如何将Excel文件中的图书信息导入到网站数据库的实现过程。这里以MySQL作为网站的后台数据库。 1.将Excel工作表另存为Excel XML表格文档。在Excel 2003中可以将工作表另存为XML...
通过FileReference.load()方法加载Excel文件,然后使用Event.COMPLETE事件监听文件加载完成。 2. **解析Excel数据**:加载完成后,Excel数据以二进制格式存在。AS3没有内置的Excel解析器,因此通常需要借助第三方库...
例如,提供的"excel_mergeCells.php"可能是一个PHP脚本,用于处理Excel文件的合并操作。在VBA中,可以使用`Range.Merge`方法来合并单元格。 四、高级应用:条件格式下的合并 Excel的条件格式功能可以设置规则,当...
`PHPExcel` 是一个非常强大的用于读取和处理Microsoft Office Excel文件的PHP类库。它支持多种文件格式,包括XLSX、XLSM等,并提供了丰富的API接口供开发者调用。 #### 实现步骤 ##### 步骤一:环境搭建 首先需要...
通常,Excel文件会先上传到服务器,然后由后端(如PHP)处理,将Excel数据转换为JSON或其他可读格式返回给前端。 在PHP中,可以使用像`PHPExcel`或`phpoffice/phpspreadsheet`这样的库来读取Excel文件。这些库允许...
PHPExcel使用面向对象的方法设计,提供了大量的类和方法,使得Excel文件的操作变得简单高效。 ### 安装PHPExcel 要想在PHP项目中使用PHPExcel,首先需要将其安装到项目中。可以通过Composer包管理工具或者直接下载...