<?php


namespace app\index\controller;


use PhpOffice\PhpSpreadsheet\IOFactory;

class Excel
{

    /**
     * excel比对,打印比对结果
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     */
    public function compaire()
    {
        writeln("compaire begin");

        $exel = ROOT_DIR . "/excel/rhasd211027.xlsx";
        writeln($exel);

        $spreadsheet = IOFactory::load($exel);
        //格式化数据
        $sheet1 = $spreadsheet->getSheet(0);
        $array1 = $sheet1->toArray();
        foreach ($array1 as $key => $value) {
            //银行卡
            $array1[$key][1] = str_replace("'", "", $value[1]);
            $array1[$key][1] = trim(str_replace(" ", "", $array1[$key][1]));
            //状态
            $array1[$key][4] = trim($value[4]);

        }
        $sheet2 = $spreadsheet->getSheet(1);
        $array2 = $sheet2->toArray();
        foreach ($array2 as $key => $value) {
            //银行卡
            $array2[$key][4] = str_replace("'", "", $value[4]);
            $array2[$key][4] = trim(str_replace(" ", "", $array2[$key][4]));
            //状态
            $array2[$key][9] = trim($value[9]);

        }
        //比对

        $diffArr = [];
        foreach ($array1 as $key1 => $value1) {
            if ($key1 == 0) {
                continue;
            }
            //writeln("key1:" . $key1);
            $isSame = false;
            foreach ($array2 as $key2 => $value2) {
                if ($value1[1] == $value2[4] && $value1[4] == $value2[9] && $value1[2] == $value2[6]) {
                    $isSame = true;
                    break;
                }
            }
            if (!$isSame) {
                $diffArr[] = $value1;
            }
        }
        writeln("差异的记录:");
        foreach ($diffArr as $key => $value) {
            writeln($value);
        }

        writeln("compaire end");
    }

}