Descobrindo por que existe uma diferença de tamanho para um arquivo CSV com o mesmo conteúdo

3

Situação :

Eu executo uma macro para formatar um arquivo do Excel e salve o arquivo excel formatado como um .xlsx, o tamanho do arquivo é 37 KB. Copio o conteúdo e o salvo em um novo arquivo, 30 KB.

Edição :

Quero saber quais são as diferenças subjacentes. Tentei usar a comparação da planilha. Sem diferenças Então eu converti os arquivos em CSVs e quando executo isso no PowerShell:

$file1 = import-csv -Path "C:\Users\me\Desktop\Original_File.csv"
$file2 = import-csv -Path "C:\Users\me\Desktop\New_File.csv"
Compare-Object $file1 $file2 -property MPFriendlyName -IncludeEqual

Isso me diz que não há diferenças no conteúdo. Existe um comando ou qualquer outra ferramenta que possa me explicar quais são as diferenças subjacentes? Como exatamente o que são os 7 KB?

Nota lateral :

Isso pode parecer estúpido também, mas eu abri o Visual Basic .xlsx pensando que a diferença de tamanho é a macro salva, mas não é, não há macro salva.

Simon
fonte
@root Não é
Simon
Pode haver aspas em todos os campos da cópia maior, a importação do CSV os removeria e mostraria apenas o conteúdo do campo , não os "caracteres de escape" e outra formatação específica do CSV.
Mokubai
Compare os arquivos visualmente usando o Bloco de notas ou similar para verificar.
Mokubai
2
tente comparar com o Notepad ++ (existe um plug-in de comparação disponível em Plugins - Plugin manager) e certifique-se de ativar View - Show Symbols - Show all characters. isso exibirá todos os caracteres no documento, incluindo delimitadores de espaço em branco e de linha, que ocupam bytes, mas não são estritamente "conteúdo".
Frank Thomas
1
Lembre-se que .xlsxos arquivos (e .docxe .pptxarquivos) estão em formato zip. Se você fizer uma cópia de cada arquivo (ou apenas renomeá-lo) com uma extensão de .zip, poderá abri-los, ver as partes componentes e comparar seus tamanhos. Se apenas um ou dois componentes tiverem tamanho diferente, observe-os. Mesmo que você não consiga entender o conteúdo, os nomes deles podem lhe dar uma pista.
G-Man

Respostas:

0

É possível que eles sejam idênticos em termos de conteúdo. Portanto, sua comparação de CSV pode ser confiável. Para descobrir o que poderia ser diferente entre os arquivos do Excel, você pode fazer o seguinte:

  • Extraia cada arquivo do Excel para um diretório separado (os arquivos xlsx são arquivos compactados que contêm arquivos XML)
  • Use uma ferramenta como o WinMerge para comparar os diretórios. Isso destacará os arquivos XML exatos e as linhas diferentes.
Wouter
fonte
0

Anatomia de uma planilha

Usando uma planilha existente de 11 KB, copiei os dados em uma nova planilha, salvei-os e o tamanho do arquivo era 10 KB.

Abri os dois arquivos XLSX no NotePad ++, fiz uma comparação e houve diferenças imediatas. Esses arquivos pareciam código de máquina, embora com muito pouco texto legível. Copiei o texto de um arquivo para o outro e salvei. Quando tentei abrir no Excel novamente, o arquivo voltou corrompido e não foi aberto.

Uma das poucas linhas de código legíveis era essa sequência:

worksheets/_rels/sheet1.xml.rels

A inserção disso em uma pesquisa me levou a este artigo que explica tudo: Anatomia de um arquivo de planilha

Depois que percebi que um arquivo XLSX é realmente um arquivo zip, descompactei os dois arquivos e comparei os arquivos e a estrutura dos arquivos. Eles eram exatamente iguais, com exceção de uma pasta "_rels" adicional, dentro da pasta "planilha". Essa pasta "_rels" continha um arquivo "sheet1.xml.rels" adicional que representava minha diferença de 1 KB.

Presumi que a diferença estaria nas larguras das colunas ou em outras pequenas alterações de formatação, mas meu arquivo XML de 1 KB acabou como um arquivo de esquema para uma impressora ...

DBADon
fonte