2

Резюме: Excel восстанавливает мой файл, сообщает мне, что было удалено, я вхожу в структуру xml/zip для расследования и не могу понять, что было изменено. Кто-нибудь знает, что я могу сделать, чтобы лучше понять, что изменилось в Excel? Бесполезно пытаться определить? Такое ощущение, что это должно быть возможно, и как будто я почти там ...

Подробности:

Когда я открываю файл, который я переименовал в unnamed.xlsm, я получаю следующее уведомление: «Excel обнаружил нечитаемый контент в« unnamed.xlsm ». Вы хотите восстановить содержимое этой книги? Если вы доверяете звуку этой книги, нажмите «Да».

Я знаю, что файл безопасен, я нажимаю «да» и получаю сообщение, что «Excel удалось открыть файл путем восстановления или удаления нечитаемого содержимого». Он предоставляет следующую сводку, но также предоставляет XML-файл, который, кажется, содержит то же самое содержание, поэтому я его не показывал. Резюме:

Removed Records: Shared formula from /xl/worksheets/sheet3.xml part
Removed Records: Formula from /xl/calcChain.xml part (Calculation properties)

Чтобы определить проблему, я создал копию файла-нарушителя, переименовал его так, чтобы он заканчивался на «.zip», открыл файлы, которые Excel сказал, что он изменил (sheet3), и просмотрел содержимое XML, но это не было познавательный. Я попытался сохранить отремонтированный файл и сделать простую разницу в XML для sheet3, но изменений было много, и это тоже не информативно. Я сделал то же самое для calcChain.xml, и это было более полезным. После сохранения отображаемого XML с разрывами строк в текстовом формате было легко определить элементы, которые были удалены, но теперь я хочу разобраться в них. Возможно, они дают подсказки о том, что случилось с Shee3. Следующее сравнение длинное, но я не знаю, насколько важен весь ход различий.

FILE COMPARISON
Produced: 1-7-2011 2:42:26 PM

Mode:  Just Differences

Left file: u:\My Documents\[redacted]\calcChain_orig.xml
Right file: u:\My Documents\[redacted]\calcChain_rep.xml
812    <c r="H18" i="8" />  <> 812   <c r="N2" i="8" />
814    <c r="G18" />        +-
816    <c r="D19" />        +-
818    <c r="F19" />        +-
820    <c r="E18" />        +-
822    <c r="N2" i="8" />   +-
824    <c r="H18" />        +-
                            -+ 820   <c r="H15" />
                               821   <c r="H13" />
                               822   <c r="O19" />
                               823   <c r="O17" />
                               824   <c r="O15" />
                               825   <c r="M19" />
                               826   <c r="M17" />
                               827   <c r="M15" />
                               828   <c r="M13" />
                               829   <c r="J19" />
                               830   <c r="J17" />
                               831   <c r="J15" />
                               832   <c r="J13" />
                               833   <c r="O14" />
                               834   <c r="H18" i="8" />
                               835   <c r="G18" />
                               836   <c r="D19" i="5" />
                               837   <c r="F19" />
                               838   <c r="E18" i="8" />
                               839   <c r="H18" i="9" />
827    <c r="H15" />        +-
829    <c r="H13" />        +-
831    <c r="O19" />        +-
833    <c r="O17" />        +-
835    <c r="O15" />        +-
837    <c r="M19" />        +-
839    <c r="M17" />        +-
841    <c r="M15" />        +-
843    <c r="M13" />        +-
845    <c r="J19" />        +-
847    <c r="J17" />        +-
849    <c r="J15" />        +-
851    <c r="J13" />        +-
853    <c r="O14" />        +-
1209   <c r="H48" />        +-
1210   <c r="H62" />

2 ответа2

2

Единственные реальные различия после того, как набор был отсортирован:

1,2c1,2
< <c r="D19" />
< <c r="E18" />
---
> <c r="D19" i="5" />
> <c r="E18" i="8" />
7d6
< <c r="H18" />
9,10c8
< <c r="H48" />
< <c r="H62" />
---
> <c r="H18" i="9" />

Похоже, что H48 и H62 могли быть поврежденными или отсутствующими, удаление которых требовало добавления явных чисел в D19, E19 и H18, тогда как неявные значения были хороши раньше. Программное обеспечение сторонних производителей, которое редактирует файлы OOXML, часто делает это; Более умное программное обеспечение просто полностью удаляет файл calcChain и заставляет Excel воссоздать его.

Обычное программное обеспечение diff всегда будет полным провалом для XML, вместо этого используйте XML diff . Существует большое количество графического интерфейса и командной строки, вы можете найти неуловимое различие в sheet3.xml таким образом.

-1
  1. Перейти к вашей панели управления
  2. Открыть Установка и удаление программ
  3. Ищите Microsoft Office
  4. Хит Изменить
  5. Выберите Добавить или удалить компоненты
  6. Развернуть Office Общие функции
  7. Установите Visual Basic для приложений для запуска с вашего компьютера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .