Por que o Numbers oculta um arquivo PNG enorme nas planilhas do Excel exportadas?

73

OK, isso é estranho. Pego minha folha de números em branco:

Folha em branco importada do CSV em branco

... e exporte para o Excel:

insira a descrição da imagem aqui

Whoah, isso parece um pouco grande. Vamos renomear o documento do Excel para .zip e dar uma olhada no interior:

insira a descrição da imagem aqui

Indo um pouco mais fundo:

insira a descrição da imagem aqui

Bem, acabamos de encontrar 99% do tamanho do arquivo. Mas o que é isso - algum tipo de imagem de visualização incorporada? Vamos abri-lo:

insira a descrição da imagem aqui

Não, apenas um PNG de 635x635 de ruído aleatório. Alguém tem alguma idéia do que está acontecendo aqui?

Nimesh Neema
fonte

Respostas:

41

Não sei por que ele está incluído na exportação, mas este é um dos "Preenchimentos de imagem" padrão: Preenchimento de imagem

Lukas Klein
fonte
2
Felizmente, parece que é possível apagar esta imagem sem corromper o arquivo xlsx usandozip -d myFile.xlsx xl/media/image1.png
Bastien Jansen
35

tl; dr: é o preenchimento de forma padrão, estritamente desnecessário se não houver formas.

XLSX, DOCX e outros formatos usam OPC (as convenções de embalagem aberta), que exige o contêiner zip e descreve como os arquivos devem ser dispostos. Se houver um arquivo que você não reconheça, procure nos vários arquivos de relacionamento (eles terminam em .rels).

Nesse caso, a linha relevante pode ser encontrada no arquivo de relacionamento de temas xl/theme/_rels/theme1.xml.rels:

  <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="../media/image1.png"/>

O arquivo será referenciado em xl/theme/theme1.xmlcomo rId1. Usando o ECMA-376 como guia, você o encontrará como o preenchimento de forma padrão:

<a:objectDefaults>                    <-- shape/line/text defaults
  <a:spDef>                           <-- shape defaults
    <a:spPr>                          <-- shape properties
      <a:blipFill rotWithShape="1">   <-- picture fill
        <a:blip r:embed="rId1"/>      <-- references the picture

O escritor não deve omitir a imagem se não houver forma.

SheetJS
fonte
31

Os arquivos do Keynote exportados para o PowerPoint também fazem coisas assim. Esse PNG é um preenchimento em segundo plano do Keynote e é disponibilizado para o PowerPoint para ser usado como preenchimento de forma padrão para as formas criadas no documento exportado. O Keynote não apenas exporta seu documento, mas também os elementos de estilo do modelo com os quais ele foi criado - mesmo que alguns desses elementos de estilo (por exemplo, a imagem de plano de fundo) ainda não tenham sido usados.

gcp
fonte