前端之家收集整理的这篇文章主要介绍了
php生成与读取excel文件,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在网站中经常会生成表格,CSV和Excel都是常用的报表格式,CSV相对来说比较简单,如果大家有疑问我会相继发布一些CSV的实例,这里主要介绍用PHP来生成和读取Excel文件。
要执行下面的函数,首先要引入一个类库:PHPExcel,PHPExcel是一个强大的PHP类库,用来读写不同的文件格式,比如说Excel 2007,PDF格式,HTML格式等等,这个类库是建立在Microsoft's OpenXML和PHP 的基础上的,对Excel提供的强大的支持,比如设置工作薄,字体样式,图片以及边框等等,下面来看看它是如何读写Excel文件的:
首先来看如果生成Excel文件:
下面这代码中函数arrayToExcel的功能是把一个二维数组的数据生成一个excel文件,并且保存在服务器上。
setActiveSheetIndex(0);
$obj
PHPExcel->getActiveSheet()->setTitle('firstsheet');
$obj
PHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$obj
PHPExcel->getDefaultStyle()->getFont()->setSize(10);
//add data
$i = 2;
foreach ($data as $line){
$obj
PHPExcel->getActiveSheet()->setCellValue('A'.$i,$line['From']);
$obj
PHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n');
$obj
PHPExcel->getActiveSheet()->setCellValue('B'.$i,$line['To']);
$obj
PHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n');
$i++;
}
$objWriter =
PHPExcel_IOFactory::createWriter($obj
PHPExcel,'Excel5');
$file = 'excel.xls';
$objWriter->save($file);
}
如果你不希望保存在服务器上,希望生成以后直接下载到客户端,可以在输出文件的时候加入下面的代码,而不使用 $objWriter->save($file);
代码如下:
接下来看一个读取Excel文件内容的实例:
下面这代码中函数excelToArray的功能是把一个excel里的内容重新整理放到一个数组了。
代码如下:
setReadDataOnly(true);
$obj
PHPExcel = $objReader->load($file);
$objWorksheet = $obj
PHPExcel->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;
}
精简办法
代码如下:
PHP;">
PHP
/**
*
* @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可以继续关注本站。