php原生读取excel文件夹,php生成与读取excel文件

在网站中经常会生成表格,CSV和Excel都是常用的报表格式,CSV相对来说比较简单,如果大家有疑问我会相继发布一些CSV的实例,这里主要介绍用PHP来生成和读取Excel文件。

要执行下面的函数,首先要引入一个类库:PHPExcel,PHPExcel是一个强大的PHP类库,用来读写不同的文件格式,比如说Excel 2007,PDF格式,HTML格式等等,这个类库是建立在Microsoft's OpenXML和PHP 的基础上的,对Excel提供的强大的支持,比如设置工作薄,字体样式,图片以及边框等等,下面来看看它是如何读写Excel文件的:

首先来看如果生成Excel文件:

下面这代码中函数arrayToExcel的功能是把一个二维数组的数据生成一个excel文件,并且保存在服务器上。

require_once 'Classes/PHPExcel/Reader/Excel2007.php';

require_once 'Classes/PHPExcel/Reader/Excel5.php';

include 'Classes/PHPExcel/IOFactory.php';

function arrayToExcel($data){

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->setTitle('firstsheet');

$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');

$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);

//add data

$i = 2;

foreach ($data as $line){

$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $line['From']);

$objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n');

$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $line['To']);

$objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n');

$i++;

}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$file = 'excel.xls';

$objWriter->save($file);

}

如果你不希望保存在服务器上,希望生成以后直接下载到客户端,可以在输出文件的时候加入下面的代码,而不使用 $objWriter->save($file);

代码如下:

header("Pragma: public");

header("Expires: 0");

header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

header("Content-Type:application/force-download");

header("Content-Type:application/vnd.ms-execl");

header("Content-Type:application/octet-stream");

header("Content-Type:application/download");

header('Content-Disposition:attachment;filename="excel.xls"');

header("Content-Transfer-Encoding:binary");

$objWriter->save('php://output');

接下来看一个读取Excel文件内容的实例:

下面这代码中函数excelToArray的功能是把一个excel里的内容重新整理放到一个数组了。

代码如下:

require_once 'Classes/PHPExcel.php';

require_once 'Classes/PHPExcel/IOFactory.php';

function excelToArray($file){

$objReader = PHPExcel_IOFactory::createReader('Excel5');

$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load($file);

$objWorksheet = $objPHPExcel->getActiveSheet();

$highestRow = $objWorksheet->getHighestRow();

$highestColumn = $objWorksheet->getHighestColumn();

$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

$excelData = array();

for ($row = 2; $row <= $highestRow; ++$row) {

for ($col = 0; $col <= $highestColumnIndex; ++$col) { $excelData[$row][] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();

}

}

return $excelData;

}

精简办法

代码如下:

/**

*

* @copyright 2007-2012 Xiaoqiang.

* @author Xiaoqiang.Wu

* @version 1.01

*/

error_reporting(E_ALL);

date_default_timezone_set('Asia/ShangHai');

/** PHPExcel_IOFactory */

require_once '../Classes/PHPExcel/IOFactory.php';

// Check prerequisites

if (!file_exists("31excel5.xls")) {

exit("not found 31excel5.xls.n");

}

$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)

$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件

$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表

$highestRow = $sheet->getHighestRow(); // 取得总行数

$highestColumm = $sheet->getHighestColumn(); // 取得总列数

/** 循环读取每个单元格的数据 */

for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始

for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始

$dataset[] = $sheet->getCell($column.$row)->getValue();

echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."
";

}

}

?>

希望本文所述对你有所帮助,php生成与读取excel文件内容就给大家介绍到这里了。希望大家继续关注我们的网站!想要学习php可以继续关注本站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值