กำลังวินิจฉัยสเปรดชีต Excel ที่ช้า


13

ลูกค้าติดต่อฉันบ่นว่ามีสเปรดชีต Excel ที่เปิดนานเกินไป พวกเขาใช้ Excel เพื่อสร้างใบแจ้งหนี้ดังนั้นพวกเขาจึงมีสเปรดชีต Excel หลายร้อยรายการที่มีการจัดรูปแบบแสงและการคำนวณที่ง่ายมาก เมื่อเรียงลำดับสเปรดชีตตามขนาดฉันเห็นว่าขณะที่สเปรดชีตส่วนใหญ่อยู่ในช่วง 10-250k มีสเปรดชีตจำนวนหนึ่งที่มีขนาดไฟล์ 2-3 MB ขึ้นไป ผิดปกติขนาดไฟล์ไม่ใหญ่พวกเขาไม่ได้เก็บข้อมูลมากเพียงแค่การจัดรูปแบบอาจจะสองหรือสามหน้าของใบแจ้งหนี้ที่พิมพ์ แต่จำนวนข้อมูลเกือบจะเหมือนกับกระดาษคำนวณขนาดเล็ก (และเปิดตามปกติ) .

เมื่อเปิดไฟล์ปริมาณ RAM ที่ต้องการจะเพิ่มขึ้นจาก 3 MB เป็น 400 MB และจะใช้แกนเดียวอย่างสมบูรณ์ (ทดสอบกับ dual-core ในสำนักงานและแล็ปท็อป quad-core ของฉัน) ในขณะที่เริ่มต้น ฉันคิดว่าพวกเขาจับโค้ด VBA บางตัวได้ แต่ไม่มีมาโครหรือไม่มีรหัส VBA Ctrl + End แสดง 39 แถวและประมาณ 12 คอลัมน์ (สิ้นสุดที่ M) ฉันยังลบข้อมูลต่อแถวหรือทีละคอลัมน์จนกว่าจะไม่มีข้อมูลเหลืออยู่และมันก็ทำให้ฉันมีปัญหาเดียวกัน

ฉันได้ตรวจสอบการค้นหาของ Google มากมาย แต่ฉันไม่มีที่เลยแล้ว ใครช่วยเสนอความช่วยเหลือได้บ้าง?


หมายเหตุที่น่าสนใจอื่น: ฉันไม่สามารถบันทึกไฟล์ xlsx เป็นไฟล์ xls ใน Excel 2007 ได้ แต่ด้วยการนำเข้าลงใน Google เอกสารแล้วบันทึกเป็นไฟล์ xls ฉันจะได้ไฟล์ขนาดปกติอีกครั้ง
Simon Hova

คำตอบ:


7

ฉันพบคำตอบสำหรับปัญหาของฉันแล้ว!

ด้วยการใช้เบาะแสที่ฉันได้รับจาก allquixotic ฉันเปิดไฟล์ xlsx ใน 7-Zip และเปรียบเทียบขนาดไฟล์ มีอยู่คนหนึ่งเป็นแฟ้มที่เป็นมากมีขนาดใหญ่กว่าคนอื่น ๆ ไฟล์ xl \ drawings \ drawing1.xml เป็นไฟล์ที่มีการอ้างอิงหลายรูปแบบมากกว่าซ้ำแล้วซ้ำอีก

ฉันใช้เวลาสองสามชั่วโมงเพื่อหารูปแบบ แต่ไม่สามารถทำได้ ไม่มีอะไรที่ฉันสามารถทำได้เพื่อให้มันทำงานได้! จากนั้นหลังจากการทำให้รุนแรงขึ้นฉันเพิ่งลบไฟล์แช่งและพยายามเปิดอีกครั้งใน Excel (2010- ไม่ได้ทดสอบใน Excel 2007)

มันบ่นว่าไฟล์เสียหายและถามว่าฉันต้องการลองซ่อม การซ่อมแซมไฟล์จะเป็นการลบรูปร่าง แต่ไม่ได้เปลี่ยนรูปแบบของไฟล์เลย ฉันต้องบันทึกไฟล์เป็นไฟล์เดียวกันซึ่งมันแปลกไปหน่อย แต่มันก็ใช้ได้!

อย่างที่ฉันเคยพูดถึงก่อนหน้านี้ฉันไม่ได้ทดสอบโซลูชันนี้สำหรับผลิตภัณฑ์อื่นที่ไม่ใช่ Excel 2010 ดังนั้นฉันไม่รู้ว่าไฟล์รูปร่างสำคัญต่อ Excel 2k7 หรือผลิตภัณฑ์ OpenOffice ใด ๆ หรือไม่ แต่ถ้าคุณมีปัญหาที่คล้ายกันหวังว่านี่จะเป็นประโยชน์


ฉันพบไฟล์ที่มีปัญหาเดียวกัน แทนที่จะลบ drawing1.xml ฉันลบการอ้างอิงถึง drawing จาก sheet1.xml และทำ "save as" สาเหตุที่เป็นไปได้อาจเป็นการคัดลอกข้อมูลหรือสตริงที่จัดรูปแบบจากเมลอินเทอร์เน็ตหรือสปูรชชีทอื่น ๆ
Andrei

1
พบกับสถานการณ์ที่คล้ายกัน ในกรณีของฉันมี drawingN.xml หลายขนาดตั้งแต่ "ยอมรับ" 200 KB ถึง 80 MB ไฟล์ดังกล่าวนำเดสก์ท็อปแบบ quad-core ที่มี RAM ขนาด 16GB มาที่หัวเข่า การลบ drawingN.xml ทั้งหมด (เนื่องจากไฟล์ Excel ไม่มีกราฟ / กราฟิก) แก้ปัญหาได้ทำงานกับ Office 365 ล่าสุดในขณะที่เขียนนี้
Martheen Cahya Paulo

6

คุณใช้รูปแบบไบนารี. xls หรือรูปแบบ. xlsx ที่ยึดตาม XML ใหม่หรือไม่ โดยทั่วไปแล้วรูปแบบ. xlsx ส่งผลให้ขนาดไฟล์ลดลงอย่างมาก

ตรวจสอบสิ่งต่างๆเช่นสไตล์จำนวนมากที่เก็บไว้ในเอกสาร

ลอง "ลบข้อมูลส่วนบุคคล" (ฟีเจอร์ของ Excel / Word / ฯลฯ ) เพื่อล้าง cruft บางชนิดที่อาจมีอยู่ในไฟล์

หากสเปรดชีตเป็นหรือเคยแบ่งปันมาก่อนหน้านี้อาจมีการแบ่งปันข้อมูลเก่าที่เก็บอยู่ในนั้น

การแก้ไขอย่างง่ายอย่างหนึ่งคือการคัดลอกและวางข้อมูลที่เกี่ยวข้องจากสเปรดชีตนั้นไปยังรายการใหม่จากนั้นบันทึกในรูปแบบ. xlsx และดูว่ามันมีขนาดเล็กเพียงใด ถ้ามันมีขนาดเล็กมากคุณก็จะได้คำตอบ - Excel กำลังทำบัญชีไม่ดีเกี่ยวกับโครงสร้างข้อมูลของรูปแบบไฟล์ภายใน

ตรวจสอบสูตรที่ซับซ้อนหรือแบบวงกลมและอ้างอิงไปยังแผ่นงานภายนอก (โดยเฉพาะในไดรฟ์เครือข่าย) หากคุณคิดว่าสูตรอาจช้าคุณสามารถผ่านไปได้โดยใช้เครื่องมือตรวจสอบสูตร

สิ่งสุดท้าย: หากคุณบันทึกเป็น. xlsx และยังใหญ่อยู่ให้ลองดาวน์โหลดเครื่องมือเพิ่มประสิทธิภาพ SDK ของ OpenXML: http://www.microsoft.com/en-us/download/details.aspx?id=5124

เปิดไฟล์. xlsx ขึ้นมาและดูองค์ประกอบทั้งหมดในไฟล์และดูว่ามีอะไรที่ไม่เกี่ยวข้อง สิ่งนี้อาจจำเป็นต้องมีความรู้เกี่ยวกับ XML และ schema ของ OpenXML ที่เฉพาะเจาะจง แต่เป็นวิธีที่แน่นอนในการค้นหาว่าอะไรเป็นสาเหตุของการขยายตัว

PS - หากสิ่งนี้ทำให้คุณรำคาญให้หยุดใช้รูปแบบ / โปรแกรมของ Microsoft หรือแนะนำให้ลูกค้าทำเช่นนั้น หากคุณเข้าไปที่ "ฐานข้อมูล Microsoft Access bloat" คุณจะเห็นว่า Microsoft มีประวัติอันยาวนานในการให้รูปแบบที่เป็นกรรมสิทธิ์ของพวกเขารั่วข้อมูลไร้ประโยชน์มากมายไปยังดิสก์ที่ไม่เคยถูกกำจัด มันเหมือนการรั่วไหลของหน่วยความจำที่น่ารังเกียจจริงๆที่กินดิสก์ของคุณแทน RAM ของคุณ


สเปรดชีตนั้นเป็น xlsx และสิ่งหนึ่งที่แปลกประหลาด: ฉันไม่สามารถบันทึกเป็นไฟล์. xls ได้ มันยังคงส่งคืนข้อผิดพลาดใน Excel 2k7 ฉันบันทึกสำเนาเป็นสเปรดชีต xml ในปี 2003 และสิ่งที่แปลกที่ฉันพบคือมันมีรูปแบบจำนวนมาก สิ่งนี้แปลกเพราะสเปรดชีตทั้งหมดใช้แบบอักษรเดียวกันและไม่มีการจัดรูปแบบพิเศษ ยังไม่ทราบว่าจะบอกลูกค้าอย่างไร
Simon Hova

2

แนวทางแก้ไขที่เป็นไปได้อีกประการคือ:

  1. สร้างสำเนาของไฟล์ Excel ที่มีปัญหา
  2. เปิดสำเนานั้น
  3. กด CTRL + A แล้วคลิกที่ "Clear" -> "Clear Formats"
  4. ทำซ้ำขั้นตอนที่ 3 ในทุกแผ่นงาน
  5. บันทึกไฟล์และลองเปิดใหม่อีกครั้ง

เมื่อมีการจัดรูปแบบที่มากเกินไปโดยเฉพาะอย่างยิ่งถ้ามีสไตล์ที่แตกต่างกันนำไปใช้กับเซลล์จำนวนมากแต่ละ Excel พยายามต่อสู้กับการจัดรูปแบบเมื่อเปิดไฟล์

โดยปกติเมื่อคุณลบการจัดรูปแบบทั้งหมดคุณจะได้รับข้อความที่มีสไตล์เริ่มต้นที่นำไปใช้กับเซลล์ทั้งหมดที่มีเส้นขอบการแรเงาและอื่น ๆ หายไป แต่วิธีนี้คุณสามารถระบุสาเหตุของปัญหาได้


0

เพื่อลดขนาดลงอย่างมากคุณอาจลองใช้รูปแบบ. xlsb ควรลดมากกว่ารูปแบบ XML อื่นที่ excel จัดให้

เปิดสเปรดชีทหนึ่งในนั้นและดูรูปแบบ มองหาอะไรตามปกติ ลองคัดลอกทั้งคอลัมน์ไปยังกระดาษคำนวณ excel อื่นและวางค่าเท่านั้น (โดยไม่มีการจัดรูปแบบใด ๆ ) ดูว่ามันช่วย


ฉันพยายามบันทึกเป็น xlsb ไม่มีการลดขนาดเลย ภาพหน้าจอ
Simon Hova

@Simon Hova คุณลองตั้งค่าการคำนวณเป็นแบบแมนนวลแล้วเริ่ม excel ใหม่อีกครั้งหรือไม่? มันอาจเป็นอะไรก็ได้: สูตรการจัดรูปแบบ คุณคัดลอกคอลัมน์ข้อมูลไปยังกระดาษคำนวณ excel อื่นเพื่อดูว่าประสิทธิภาพการทำงานเหมือนกันหรือไม่ เพียงแค่ข้อมูล ไม่มีสูตรหรือการจัดรูปแบบ เพิ่มพวกเขาทีละคนและดูว่ามีปัญหาอยู่ที่ไหน
TwirlMandarin

นั่นเป็นอีกหนึ่งสิ่งที่แปลกมีคือการคำนวณไม่มีไม่มีสูตรสำเร็จถูกเรียกใช้ มันเป็นเพียงไม่กี่แถวและคอลัมน์ที่มีการจัดรูปแบบเล็กน้อย ฉันพยายามลบ data data ไปทีละแถวแล้วและฉันก็เหลือไฟล์ที่มีขนาดใกล้เคียงกันมาก่อน ยังคงนิ่งงัน
Simon Hova

0

ในกรณีของฉันปัญหาเกี่ยวข้องกับ "จัดรูปแบบเป็นตาราง" ตารางมีคอลัมน์ว่าง 16,000 คอลัมน์ ฉันคิดว่านี่เป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดสำหรับปัญหาประเภทนี้


0

ฉันได้ดูกฎการจัดรูปแบบตามเงื่อนไขทั้งหมดในแผ่นงานทั้งหมดและมีการโหลด ฉันผ่านมันไปแล้วล้างมันทั้งหมดแล้วสร้างสิ่งที่ฉันต้องการจริง ๆ และตอนนี้มันก็เร็วมาก กำจัด 'การเชื่อมต่อ' ทั้งหมดที่ฉันไม่ต้องการและบันทึกเป็น. xlsb หลังจากทำงานได้ดีและเร็วขึ้นในขณะนี้: o)


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