¿Por qué Numbers oculta un gran archivo PNG en hojas de Excel exportadas?

73

OK, este es raro. Tomo mi hoja de números en blanco:

Hoja en blanco importada de CSV en blanco

... y exportarlo a Excel:

ingrese la descripción de la imagen aquí

Whoah, eso parece un poco grande. Cambiemos el nombre del documento de Excel a .zip y echemos un vistazo al interior:

ingrese la descripción de la imagen aquí

Excavando un poco más profundo:

ingrese la descripción de la imagen aquí

Bueno, acabamos de encontrar el 99% del tamaño del archivo. Pero, ¿qué es? ¿Una especie de imagen de vista previa incrustada? Vamos a abrirlo:

ingrese la descripción de la imagen aquí

No, solo un PNG de 635x635 de ruido aleatorio. Alguien tiene alguna idea de lo que está pasando aquí?

Nimesh Neema
fuente

Respuestas:

41

No estoy seguro de por qué se incluye en la exportación, pero este es uno de los "Rellenos de imagen" predeterminados: Relleno de imagen

Lukas Klein
fuente
2
Afortunadamente, parece que es posible eliminar esta imagen sin corromper el archivo xlsx usandozip -d myFile.xlsx xl/media/image1.png
Bastien Jansen
35

tl; dr: es el relleno de forma predeterminado, estrictamente innecesario si no hay formas.

XLSX, DOCX y otros formatos usan OPC (las convenciones de empaquetado abierto), que exige el contenedor zip y describe cómo deben distribuirse los archivos. Si hay un archivo que no reconoce, busque en los distintos archivos de relación (terminan en .rels).

En este caso, la línea relevante se puede encontrar en el archivo de relación de temas xl/theme/_rels/theme1.xml.rels:

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

El archivo se referenciará xl/theme/theme1.xmlcomo rId1. Usando ECMA-376 como guía, lo encontrará referenciado como el relleno de forma predeterminado:

<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

El escritor no debe omitir la imagen si no hay forma.

SheetJS
fuente
31

Los archivos Keynote exportados a PowerPoint también hacen cosas como esta. Ese PNG es un relleno de fondo de Keynote y está disponible para PowerPoint para ser utilizado como el relleno de forma predeterminado para las formas creadas en el documento exportado. Keynote no solo exporta su documento, sino también los elementos de estilo de plantilla con los que se creó, incluso si algunos de esos elementos de estilo (es decir, la imagen de fondo) aún no se han utilizado.

gcp
fuente