123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?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");
- }
- }
|