Dlaczego Numbers ukrywa ogromny plik PNG w eksportowanych arkuszach Excel?

73

OK, to dziwne. Biorę mój pusty arkusz Numbers:

Pusty arkusz importowany z pustego pliku CSV

... i wyeksportuj go do Excela:

wprowadź opis zdjęcia tutaj

Whoah, to wydaje się trochę duże. Zmieńmy nazwę dokumentu Excel na .zip i zajrzyjmy do środka:

wprowadź opis zdjęcia tutaj

Kopiąc trochę głębiej:

wprowadź opis zdjęcia tutaj

Właśnie znaleźliśmy 99% rozmiaru pliku. Ale co to jest - jakiś osadzony obraz podglądu? Otwórzmy to:

wprowadź opis zdjęcia tutaj

Nie, tylko 635 x 635 PNG losowego hałasu. Czy ktoś ma pojęcie, co się tutaj dzieje?

Nimesh Neema
źródło

Odpowiedzi:

41

Nie jestem pewien, dlaczego został uwzględniony w eksporcie, ale jest to jeden z domyślnych „Wypełnień obrazu”: Wypełnienie obrazu

Lukas Klein
źródło
2
Na szczęście wydaje się, że można usunąć ten obraz bez uszkodzenia pliku xlsx przy użyciuzip -d myFile.xlsx xl/media/image1.png
Bastien Jansen,
35

tl; dr: to domyślne wypełnienie kształtu, absolutnie niepotrzebne, jeśli nie ma kształtów.

XLSX, DOCX i inne formaty używają OPC (konwencje otwartego pakowania), które nakazują kontener zip i opisują, jak należy układać pliki. Jeśli istnieje plik, którego nie rozpoznajesz, poszukaj różnych plików relacji (kończą się na .rels).

W takim przypadku odpowiedni wiersz można znaleźć w pliku relacji motywów xl/theme/_rels/theme1.xml.rels:

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

Plik będzie oznaczony xl/theme/theme1.xmljako rId1. Używając ECMA-376 jako przewodnika, znajdziesz go jako domyślnego wypełnienia kształtu:

<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

Autor nie może pomijać obrazu, jeśli nie ma kształtu.

SheetJS
źródło
31

Pliki keynote eksportowane do programu PowerPoint również robią takie rzeczy. Ten plik PNG jest wypełnieniem tła od Keynote i jest udostępniany w programie PowerPoint, aby można go było używać jako domyślnego wypełnienia kształtu dla kształtów utworzonych w eksportowanym dokumencie. Keynote nie tylko eksportuje dokument, ale także elementy stylu szablonu, z którymi został utworzony - nawet jeśli niektóre z tych elementów stylu (np. Obraz tła) nie zostały jeszcze użyte.

gcp
źródło