Как я могу просто проверить, являются ли два файла Excel одинаковыми или нет - PullRequest
1 голос
/ 22 сентября 2019

Я не хочу знать, В чем разница, я просто хочу знать, «Да / Нет. Эти листы идентичны?»

К сожалению, поверхностное хэширование файла не отвечает на это: (

В частности ...

  • Я взял файл .XLSX и скопировал его в файл.
  • Сравненные хеши ... Хеши были одинаковыми. Yay!
  • Открыл один файл, щелкнул по ячейке, сохранил и закрыл файл.
  • Сравнил хэши ... Хэши были разные . Boo!
  • Открыл оба файла, выбрал одну и ту же ячейку в каждом файле. Сохраненные и закрытые файлы.
  • Сравненные хэши ... Хэши были все еще разные . Boooooo!
  • Удалил один файл и скопировал оставшийся файл.
  • Сравнил хэши ... Хэши были одинаковые. Yay!
  • Открыл один файл, вообще ничего не трогал! , сохранил и закрыл файл.
  • Сравнил хэши ... Хэши были все еще отличаютсянт . Boooooooooooooooo!

Таким образом, очевидно, что Excel просто не сохраняет файл в стабильном режиме.(или включает в себя дату последнего сохранения?)

Можно ли получить стабильный хэш на основе содержимого ячейки листа?

1 Ответ

0 голосов
/ 22 сентября 2019

Одним из вариантов будет использование макроса для проверки листов.Если результат счетчика больше 0, тогда листы отличаются.

'~~~> Set the counter to 0.
i = 0

'~~~ Begin a double loop.
For r = 1 To SourceR

    For c = 1 To SourceC

        '~~~> Compare each cell in the two sheets.
        If SourceWS.Cells(r, c) <> TargetWS.Cells(r, c) Then

            If SourceWS.Cells(r, c) <> SourceWS.Range("CheckForUpdates") Then

                '~~~> Increase the counter by 1.
                i = i + 1

            End If

        End If

    Next c

Next r
...