vendor/veryinf/mb-helper/src/Excel.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace mb\helper;

use Exception;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class Excel
{
    /**
     * @param $filename string    导入文件
     * @param $columns  array    列定义, ['field'=>'#字段名称', 'column'=>'#列定义']
     * @return array        读取的数据集
     */
    public static function read($filename, $columns)
    {
        try {
            $excel = IOFactory::load($filename);
            $sheet = $excel->getSheet(0);
            $dataSet = [];
            for ($i = 2; ; $i++) {
                $allEmpty = true;

                $row = [];
                foreach ($columns as $column) {
                    $row[$column['field']] = $sheet->getCell("{$column['column']}{$i}")->getValue();
                    if ($allEmpty && !empty($row[$column['field']])) {
                        $allEmpty = false;
                    }
                }
                if ($allEmpty) {
                    break;
                }
                $dataSet[] = $row;
            }

            return $dataSet;
        } catch (Exception $e) {
            return error(-1, $e->getMessage());
        }
    }

    /**
     * @param $title    string    文件名称
     * @param $headers   array   标题定义 ['列名称1', '列名称2']
     * @param $dataSet  array    导出的数据集, 和列名称对应
     * @throws \PHPExcel_Exception
     * @throws \PHPExcel_Reader_Exception
     * @throws \PHPExcel_Writer_Exception
     */
    public static function write($title, $headers, $dataSet)
    {
        $o = new Spreadsheet();
        try {
            $o->createSheet(0);
            $sheet = $o->getSheet(0);
            $sheet->setTitle($title);

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。