Como determino o que o Excel-2007 está removendo quando repara meu arquivo?

2

Resumo: O Excel repara o meu ficheiro, diz-me o que foi removido, entro na estrutura xml / zip para investigar e não consigo descobrir o que foi alterado. Alguém sabe o que posso fazer para entender melhor o que o Excel mudou? É inútil tentar determinar? Parece que isso deveria ser possível e como se eu estivesse quase lá ...

Detalhes:

Quando abro um arquivo que renomeio unnamed.xlsm, recebo o seguinte aviso: "O Excel encontrou conteúdo ilegível em 'unnamed.xlsm'. Deseja recuperar o conteúdo desta pasta de trabalho? Se você confia na mensagem desta pasta de trabalho, clique em Sim. "

Sei que o arquivo é seguro, clico em sim e recebo uma mensagem dizendo que "O Excel conseguiu abrir o arquivo reparando ou removendo o conteúdo ilegível". Ele fornece o seguinte resumo, mas também fornece um arquivo xml que parece conter o mesmo conteúdo, então eu não o mostrei. Resumo:

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

Para determinar o problema, eu criei uma cópia do arquivo ofensivo, renomeiei para ter um final '.zip', abri os arquivos que o Excel diz que modificou (sheet3) e examinei o conteúdo xml, mas isso não foi informativo. Eu tentei salvar o arquivo reparado e fazer um diff simples no xml para sheet3, mas há muitas alterações e isso não é informativo também. Eu fiz a mesma coisa para calcChain.xml e isso foi mais útil. Depois de salvar o xml exibido com quebras de linha no formato de texto, ficou fácil identificar os itens que foram removidos, mas agora quero entendê-los. Talvez eles dêem pistas do que aconteceu com shee3. A comparação a seguir é longa, mas não sei se todo o conjunto de diferenças é relevante.

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" />
    
por sage 08.01.2011 / 00:04

2 respostas

2

Os únicos diffs reais depois que o conjunto foi classificado:

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" />

Parece que H48 e H62 podem ter sido os corrompidos ou ausentes, cuja remoção exigiu a adição de números explícitos em D19, E19 e H18, enquanto os valores implícitos estavam bem antes. Softwares não-Microsoft que editam arquivos OOXML geralmente fazem isso; Um software mais inteligente simplesmente exclui o arquivo calcChain completamente e força o Excel a recriá-lo.

Um software diff normal sempre será uma falha total para XML, use um diff de XML . Há um grande número de GUI e de linha de comando, você pode encontrar a diferença indescritível em sheet3.xml dessa maneira.

    
por 08.01.2011 / 00:52
-1
  1. Vá para o seu Painel de controle
  2. Abrir Adicionar ou Remover Programas
  3. Procure o Microsoft Office
  4. Alterar hit
  5. Selecione Adicionar ou remover recursos
  6. Desdobrar recursos compartilhados do Office
  7. Defina o Visual Basic for Applications para executar a partir do seu computador.
por 28.12.2012 / 13:07