Excel.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\index\controller;
  3. use PhpOffice\PhpSpreadsheet\IOFactory;
  4. class Excel
  5. {
  6. public function compaire()
  7. {
  8. writeln("compaire begin");
  9. $exel = ROOT_DIR . "/excel/rhasd211027.xlsx";
  10. writeln($exel);
  11. $spreadsheet = IOFactory::load($exel);
  12. //格式化数据
  13. $sheet1 = $spreadsheet->getSheet(0);
  14. $array1 = $sheet1->toArray();
  15. foreach ($array1 as $key => $value) {
  16. //银行卡
  17. $array1[$key][1] = str_replace("'", "", $value[1]);
  18. $array1[$key][1] = trim(str_replace(" ", "", $array1[$key][1]));
  19. //状态
  20. $array1[$key][4] = trim($value[4]);
  21. }
  22. $sheet2 = $spreadsheet->getSheet(1);
  23. $array2 = $sheet2->toArray();
  24. foreach ($array2 as $key => $value) {
  25. //银行卡
  26. $array2[$key][4] = str_replace("'", "", $value[4]);
  27. $array2[$key][4] = trim(str_replace(" ", "", $array2[$key][4]));
  28. //状态
  29. $array2[$key][9] = trim($value[9]);
  30. }
  31. //比对
  32. $diffArr = [];
  33. foreach ($array1 as $key1 => $value1) {
  34. if ($key1 == 0) {
  35. continue;
  36. }
  37. //writeln("key1:" . $key1);
  38. $isSame = false;
  39. foreach ($array2 as $key2 => $value2) {
  40. if ($value1[1] == $value2[4] && $value1[4] == $value2[9] && $value1[2] == $value2[6]) {
  41. $isSame = true;
  42. break;
  43. }
  44. }
  45. if (!$isSame) {
  46. $diffArr[] = $value1;
  47. }
  48. }
  49. writeln("差异的记录:");
  50. foreach ($diffArr as $key => $value) {
  51. writeln($value);
  52. }
  53. writeln("compaire end");
  54. }
  55. }