导出转载自:https://jingyan.baidu.com/article/915fc414f4c2e451384b205c.html
读取转载自:出处太多,原作者链接无法辨别,望作者谅解。
读取:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/4/11
* Time: 15:15
*/
header("Content-Type:text/html;charset=utf-8");
include_once('../../ClassLibrary/PHPExcel-1.8/Classes/PHPExcel.php');
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//date_default_timezone_set('Europe/London');
$PHPExcel=new PHPExcel();
$filename = 'test.xlsx';
//如果excel文件后缀名为.xls,导入这个类
$exts = substr($filename,(strrpos($filename,".")+1));
if($exts == 'xls'){
include_once('../../ClassLibrary/PHPExcel-1.8/Classes/PHPExcel/Reader/Excel5.php');
$PHPReader=new \PHPExcel_Reader_Excel5();
}else if($exts == 'xlsx'){
include_once('../../ClassLibrary/PHPExcel-1.8/Classes/PHPExcel/Reader/Excel2007.php');
$PHPReader=new \PHPExcel_Reader_Excel2007();
}
//载入文件
$PHPExcel=$PHPReader->load($filename);
//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
$currentSheet=$PHPExcel->getSheet(0);
//获取总列数
$allColumn=$currentSheet->getHighestColumn();
//获取总行数
$allRow=$currentSheet->getHighestRow();
//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for($currentRow=1;$currentRow<=$allRow;$currentRow++){
//从哪列开始,A表示第一列
for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
//数据坐标
$address=$currentColumn.$currentRow;
//读取到的数据,保存到数组$arr中
$data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
}
}
echo "<pre>";
var_dump($data);
echo "</pre>";
导出:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/4/11
* Time: 15:46
*/
header("Content-Type:text/html;charset=utf-8");
include_once('../../ClassLibrary/PHPExcel-1.8/Classes/PHPExcel.php');
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//创建对象
$excel = new PHPExcel();
//Excel表格式,这里简略写了8列
$letter = array('A','B','C','D','E','F','F','G');
//表头数组
$tableheader = array('学号','姓名','性别','年龄','班级');
//填充表头信息
for($i = 0;$i < count($tableheader);$i++) {
$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
}
//表格数组
$data = array(
array('1','小王','男','20','100'),
array('2','小李','男','20','101'),
array('3','小张','女','20','102'),
array('4','小赵','女','20','103')
);
//填充表格信息
for ($i = 2;$i <= count($data) + 1;$i++) {
$j = 0;
foreach ($data[$i - 2] as $key=>$value) {
$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
$j++;
}
}
//创建Excel输入对象
$write = new PHPExcel_Writer_Excel5($excel);
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="testdata.xls"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');