使用PHPExcel类完成简单的读取导出

导出转载自: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');


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值