
Ich habe den Bereich einer Formel in der Datei sheet6.xml der Tabelle mithilfe der Funktion zum Ändern/Ersetzen regulärer Ausdrücke von EditPlus geändert und dabei diesen regulären Ausdruck verwendet:
Finden:(SUM\(J.*:)(S)(.*\))
Ersetzen:\1\N\31
Dadurch werden beispielsweise Vorkommen von korrekt SUM(J1024:S1024)
in geändert SUM(J1024:N1024)
, da die Tabelle keine Daten jenseits der Spalte N enthält.
Anschließend lösche ich calcChain.xml
alles und komprimiere es in einer neuen XLSM-Datei. Wenn ich die Datei in Excel lade, wird ein Meldungsfeld angezeigt, das besagt, dass die Datei Fehler enthält und dass Excel versucht, die Datei zu reparieren, wenn ich auf „OK“ klicke. Nach dem Klicken auf „OK“ gibt Excel Folgendes an:
Excel konnte die Datei öffnen, indem es den nicht lesbaren Inhalt reparierte oder entfernte.
Entfernte Datensätze: Formel aus dem Teil /xl/worksheets/sheet6.xml
Klicken Sie hier, um die Protokolldatei mit den Reparaturen anzuzeigen: (bla, bla bla) \error123720_01.xml.
Der Inhalt von error123720_01.xml ist:
<?xml version="1.0" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error123720_01.xml</logFileName>
<summary>Errors were detected in file 'C:\Users\mbmas_000\Directory Junctions\Documents - Local\Estate Accounting-2016-05-19.Mod2.xlsm'</summary>
<removedRecords>
<removedRecord>Removed Records: Formula from /xl/worksheets/sheet6.xml part</removedRecord>
</removedRecords>
</recoveryLog>
Wie Sie sehen, enthält die „Detail“-Datei überhaupt keine Details und fügt nicht mehr Informationen hinzu als das ursprünglich angezeigte Dialogfeld.
Die Tabelle selbst sieht gut aus, wenn sie einmal geöffnet und in Excel angezeigt wird. Meine geänderten Formeln sind da. Alles sieht gut aus; allerdings handelt es sich um eine riesige Tabelle und wer weiß, ob da nicht ein Fehler lauert.
Ich würde wirklich gerne wissen, was Excel bei dieser „Reparatur“ gemacht hat. Wird das irgendwo protokolliert? Gibt es eine Möglichkeit, Excel dazu zu bringen, es zu protokollieren, wenn es nicht protokolliert wird? Ich habe versucht, das XML aus der „reparierten“ Datei zu extrahieren und es mit dem XML zu vergleichen, das meine Änderung erzeugt hat, aber das erwies sich als sehr schwierig, da Excel auch die Gelegenheit nutzte, viele der redundanten Formeln durch gemeinsame Formeln ( <f t="shared" ...>
) zu ersetzen, wodurch das ursprüngliche XML erheblich verändert wurde und ein Vergleich sehr schwierig wurde.