找回密码
 立即注册
搜索
查看: 319|回复: 0

[composer组件] PHPExcel使用1-读取excel并显示出来-比较老的方法

  [复制链接]
发表于 2023-2-23 16:38 | 显示全部楼层 |阅读模式
使用第三方扩展PHPExcel读取excel并显示出数据,

代码如下:(Thinkphp5示例)
 
//导入excel中的积分
public function import_excel()
{
    Loader::import('PHPExcel.Classes.PHPExcel');      //手动引入PHPExcel.php
    Loader::import('PHPExcel.Classes.PHPExcel.IOFactory');    //引入IOFactory.php 文件里面的PHPExcel_IOFactory这个类

    $inputFileName = 'e:/23333.xls';
    date_default_timezone_set('PRC');

    // 读取excel文件
    try {
        $inputFileType = \PHPExcel_IOFactory::identify($inputFileName);
        $objReader = \PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFileName);
    } catch(Exception $e) {
        exit('加载文件发生错误:['.pathinfo($inputFileName,PATHINFO_BASENAME).']'.$e->getMessage());
    }

    // 确定要读取的sheet
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();

    // 获取一行的数据
    for ($row = 1; $row <= $highestRow; $row++){
        // Read a row of data into an array
        $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
        //这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果
        print_r($rowData);
        echo '
';
    }
}


最后结果:
注:PHPExcel官方已经不再维护,新项目推荐使用PhpSpreadsheet来操作excel。
 
在CSDN上也发现一个使用PHPExcel:原始链接:https://blog.csdn.net/ning521513/article/details/55257925 ,原版有错误,我给修正了一下:
    public function abc()
    {
        $uploadfile = 'E:/000111.xls';
        if (!file_exists($uploadfile)) {
            $this->notfound();
        }
        $ext        = substr(strstr($uploadfile, '.'), 1);
        require './extend/PHPExcel/Classes/PHPExcel.php';
        //require './extend/PHPExcel/Classes/PHPExcel/IOFactory.php';
        if($ext=='xlsx'||$ext=='xls' ){
            $reader = \PHPExcel_IOFactory::createReader('Excel5'); // 读取 excel 文档
        }else if( $ext=='csv' ){
            $reader = \PHPExcel_IOFactory::createReader('CSV'); // 读取 excel 文档
        }else{
            die('Not supported file types!');
        }

        $PHPExcel = $reader->load($uploadfile); // 文档名称
        $objWorksheet = $PHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow(); // 取得总行数
        $highestColumn = $objWorksheet->getHighestColumn(); // 取得总列数

        //echo $highestRow.$highestColumn;
        // 一次读取一列
        $res = array();
        for ($row = 1; $row <= $highestRow; $row++) {
            for ($column = 'A'; $column <= $highestColumn; $column++) {
                $ccc = ord($column) - 65;
                $val = $objWorksheet->getCellByColumnAndRow($ccc, $row)->getValue();
                $res[$row-1][$column] = $val;
            }
        }
        dd($res);
    }
算是一个发散思维读取excel内容的方法吧。还有现在TP5都支持命名空间了,居然还在用require。
建议以后都使用命名空间引入,少用require。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|学习笔记

GMT+8, 2024-12-22 14:56 , Processed in 0.025848 second(s), 13 queries , APCu On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表