เหตุใดเบอร์จึงซ่อนไฟล์ PNG ขนาดใหญ่ในแผ่นงาน Excel ที่ส่งออก


73

ตกลงนี่เป็นสิ่งที่แปลก ฉันใช้แผ่นตัวเลขเปล่า:

ชีตว่างนำเข้าจาก CSV ที่ว่างเปล่า

... และส่งออกไปยัง Excel:

ป้อนคำอธิบายรูปภาพที่นี่

โอ้โหนั่นดูใหญ่ไปหน่อย มาเปลี่ยนชื่อเอกสาร Excel เป็น. zip และดูข้างใน:

ป้อนคำอธิบายรูปภาพที่นี่

ขุดลึกลงไปอีกเล็กน้อย:

ป้อนคำอธิบายรูปภาพที่นี่

เราเพิ่งพบขนาดไฟล์ 99% แต่มันคืออะไร - ภาพตัวอย่างแบบฝังบางประเภท? มาเปิดมันกันเถอะ:

ป้อนคำอธิบายรูปภาพที่นี่

ไม่เพียง 635x635 PNG ของเสียงแบบสุ่ม ใครมีความคิดอะไรเกิดขึ้นที่นี่

คำตอบ:


41

ฉันไม่แน่ใจว่าทำไมมันถึงรวมอยู่ในการส่งออก แต่นี่เป็นหนึ่งใน "Image Fills" เริ่มต้น: เติมภาพ


2
โชคดีที่ดูเหมือนว่าเป็นไปได้ที่จะลบภาพนี้โดยไม่ทำให้ไฟล์ xlsx เสียหายโดยใช้zip -d myFile.xlsx xl/media/image1.png
Bastien Jansen

35

tl; dr: มันคือการเติมรูปร่างเริ่มต้นโดยไม่จำเป็นหากไม่มีรูปร่าง

XLSX, DOCX และรูปแบบอื่น ๆ ใช้ OPC (การประชุมบรรจุภัณฑ์แบบเปิด) ซึ่งทำหน้าที่กำหนดคอนเทนเนอร์ซิปและอธิบายถึงวิธีการจัดวางไฟล์ หากมีไฟล์ที่คุณไม่รู้จักให้ดูในไฟล์ความสัมพันธ์ที่หลากหลาย (ไฟล์จะลงท้ายด้วย. rels)

ในกรณีนี้บรรทัดที่เกี่ยวข้องสามารถพบได้ในไฟล์ความสัมพันธ์ของธีมxl/theme/_rels/theme1.xml.rels:

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

ไฟล์จะถูกอ้างถึงในฐานะxl/theme/theme1.xml rId1การใช้ ECMA-376 เป็นแนวทางคุณจะพบว่ามีการอ้างอิงเป็นรูปร่างเติมเริ่มต้น:

<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

ผู้เขียนจะต้องไม่ละเว้นภาพหากไม่มีรูปร่าง


31

ไฟล์ Keynote ที่ส่งออกไปยัง PowerPoint ทำสิ่งนี้เช่นกัน PNG นั้นเป็นพื้นหลังที่เติมจาก Keynote และให้บริการแก่ PowerPoint เพื่อใช้เป็นรูปร่างเริ่มต้นสำหรับรูปร่างที่สร้างในเอกสารที่ส่งออก Keynote ไม่เพียง แต่ส่งออกเอกสารของคุณเท่านั้น แต่ยังรวมถึงองค์ประกอบสไตล์แม่แบบที่สร้างขึ้นด้วย - แม้ว่าองค์ประกอบสไตล์เหล่านั้นบางส่วน (เช่นภาพพื้นหลัง) ยังไม่ได้ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.