เพิ่มขีด จำกัด ขนาดของการนำเข้าข้อมูลจาก csv ไปยัง Excel


13

ฉันมีข้อมูลในไฟล์ csv ที่ฉันกำลังนำเข้าสู่ Excel ส่วนใหญ่เป็นเรื่องปกติ แต่คอลัมน์ใดคอลัมน์หนึ่งของฉันมีข้อมูลได้มากถึง 1,000 ตัวอักษร น่าเสียดายที่ Excel ใช้ตัวมันเองเพื่อสันนิษฐานว่าเป็นข้อมูลมากกว่าที่ฉันต้องการและดูเหมือนว่าจะตัดสั้น (ที่ 255 ตัวอักษร)

ฉันจะเพิ่มขีด จำกัด นี้และเก็บรักษาข้อมูลทั้งหมดของฉันได้อย่างไร


คุณหมายความว่าอย่างไร "โชคไม่ดีที่ Excel เอามาคิดเองว่ามันเป็นข้อมูลที่มากกว่าที่ฉันต้องการและดูเหมือนว่าจะตัดสั้น" แสดงผลไม่ถูกต้องหรือไม่ จะเกิดอะไรขึ้นถ้าคุณใส่=LEN(A1)ใน Excel โดยที่ A! อ้างอิงถึงข้อความของคุณหรือไม่
— ปีเตอร์อัลเบิร์ต

มันบอกว่า 255 และเมื่อฉันดูข้อมูลในกล่องสูตรมันหยุดลงทันที ฉันสามารถแสดงข้อมูลเต็มรูปแบบในสำนักงานเปิด แต่ทันทีที่ฉันวางเพื่อ excel ดูเหมือนว่าจะ จำกัด อยู่ที่ 255 ตัวอักษร เหตุผลที่ฉันไม่ได้ใช้ open office เป็นเพราะฉันสามารถผ่านเป็นข้อมูลหรือทำ vlookup ในนั้น
— SwiftD

Excel สามารถจัดการข้อความได้นานกว่า 255 ตัวอักษร อย่างไรก็ตามถ้าเซลล์ถูกเติมด้วย VBA มันซับซ้อนเล็กน้อย แหล่งที่มาของคุณคืออะไร คุณจะนำไปไว้ใน Excel ได้อย่างไร
— ปีเตอร์อัลเบิร์ต

ฉันมีการส่งออก CSV จากวีโอไอพี ถ้าฉันเปิดใน OO มันจะมีข้อความเต็ม ถ้าฉันเปิดใน Excel มันตัดสั้น ได้รับการตัดสั้นเมื่อฉันวางจาก OO ไปยัง excel และฉันไม่สามารถพิมพ์ด้วยตนเองได้อีกในเซลล์มันเพิ่งถูกตัดที่จุดเดียวกันทันทีที่ฉันออกจากเซลล์
— SwiftD

อาจมีบางอย่างผิดปกติกับ CSV หรือไม่ คุณสามารถอัปเดตคำถามและโพสต์บางบรรทัดได้หรือไม่ นอกจากนี้การตั้งค่าตัวคั่นและตัวคั่นบนเครื่องของคุณอาจเริ่มต้นขึ้น
— ม.ค. Doggen

คำตอบ:


14

มีข้อผิดพลาดแปลกใน Excel ฉันจะอธิบายวิธีหลีกเลี่ยง (ไม่แก้ไขเพียงหลีกเลี่ยง) และอาจแก้ไขได้ในไม่ช้าโดยโปรแกรมเมอร์ MS Office บางทีมันอาจจะได้รับการแก้ไขใน Excel 2013 ฉันยังไม่ได้เปิด

ดังนั้นนี่คือปัญหา

ความยาวสูงสุดของเซลล์ข้อความคือ 32767 และก็โอเค

ความยาวสูงสุดของเซลล์ตัวเลขคือ 255 และตกลง

แต่ถ้าคุณมีเซลล์ที่เรียกไปยังตัวแยกวิเคราะห์หมายเลขล้มเหลวแล้วโทรไปที่ตัวแยกวิเคราะห์ข้อความนี่จะเป็นเรื่องใหญ่

ตัวอย่างเช่น:

...,"This is a cell with 30,000 characters........",...

จะทำงาน.

แต่ถ้าคุณจะใส่เครื่องหมายลบเล็กน้อยในช่วงเริ่มต้นเช่นเดียวกับใน

...,"-This is a cell with 30,000 characters........",...

คุณจะเห็นอักขระข้อความแรก 255 ตัวเท่านั้นเนื่องจาก EXCEL คิดว่าเป็นจำนวนลบ

หวังว่ามันจะช่วย


3
นี่เป็นข้อผิดพลาดที่แปลกประหลาดที่สุดและโง่ที่สุดที่ฉันเคยเห็นในซอฟต์แวร์เชิงพาณิชย์ มันทำให้ฉันเสียสติอย่างแท้จริงว่าคุณจะจ่ายให้กับ sh * t บนโลกนี้ได้อย่างไร
— astrojuanlu

1
คำอธิบายที่ดีมากขอบคุณ น่าเสียดายที่ฉันสามารถยืนยันได้ว่า - 3 ปีต่อมา - ข้อผิดพลาดยังคงมีอยู่ใน Excel 2016 ...
— BurninLeo

ดี @BurninLeo ฉันสามารถบอกคุณได้ว่าสามวันหลังจากคำตอบเดิมของฉันฉันได้แชทไปที่ศูนย์นักพัฒนา MS Office และให้ลิงก์ไปยังหัวข้อผู้ใช้ขั้นสูงนี้
— khitron23

ดูเหมือนว่าปัญหาจะได้รับการแก้ไขด้วย Excel 365 ProPlus รุ่น 1902
— Carsten Franke

สามารถยืนยันคุณลักษณะนี้ / ข้อผิดพลาดยังคงอยู่ใน Excel 2016 ณ เดือนเมษายน 2020
— geeves

1

ฉันพบปัญหานี้ด้วยไฟล์ csv ที่มีฟิลด์ข้อความยาว ๆ ซึ่งบางครั้งเริ่มต้นด้วยเส้นประ ดูเหมือนว่าการนำเข้าของ Excel จะพยายามประมวลผลเขตข้อมูลเป็นตัวเลขเนื่องจากเส้นประและการนำเข้าตัวเลขจะตัดให้เหลือ 255 อักขระ เมื่อล้มเหลวมันจะนำเข้าเป็นข้อความ แต่จะมีเพียง 255 อักขระแรก

เพื่อหลีกเลี่ยงปัญหานี้ฉันต้องนำเข้า csv แทนที่จะเปิดมัน ในตัวช่วยสร้างการนำเข้าฉันเลือกคอลัมน์ที่มีปัญหาและเปลี่ยนประเภทจากทั่วไปเป็นข้อความ จากนั้น Excel จะไม่พยายามแยกมันเป็นตัวเลขและฉันจะได้ความกว้างของคอลัมน์แบบเต็ม


0

ประการแรกขอขอบคุณทุกท่านสำหรับความช่วยเหลือในการพยายามแก้ไขปัญหานี้ ปรากฎว่า excel มีความสุขสามารถรองรับมากกว่า 255 ตัวอักษรไปยังเซลล์ (สันนิษฐานได้ถึง 32,767 ตามที่กล่าวไว้ก่อนหน้านี้ถ้าคุณมีหน่วยความจำสำหรับมัน

เหตุใดจึงไม่ทำงาน

คำตอบสั้น ๆ คือฉันไม่แน่ใจ ครั้งแรกที่ฉันนำข้อมูลเข้าสู่ excel ฉันส่งออกเป็น csv จากนั้นเปิดใน excel ทำให้คอลัมน์สั้น (ที่ 255) (ไฟล์ csv มีข้อมูลทั้งหมดเมื่อดูผ่าน notepad แต่ไม่เมื่อบันทึกอีกครั้งผ่าน excel)

คอลัมน์ในคำถามมีเครื่องหมายอัฒภาคอยู่บ้าง แต่นี่ไม่ตรงกับจุดตัด (มักจะ 255) และฉันไม่ได้ใช้ เป็นตัวคั่น

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

หวังว่าสิ่งนี้จะช่วยให้ใครบางคนแม้ว่าฉันจะยังไม่แน่ใจว่าสิ่งที่เป็นปัญหาที่นี่


Simple Googling ส่งผลให้โพสต์ฟอรัมจำนวนมากของผู้ที่มีปัญหาเดียวกัน อาจเป็นข้อบกพร่องในรูทีนการนำเข้า Excel CSV
— มาร์คัสชาน

0

ตามที่http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx , Excel 2010 รองรับความกว้างของคอลัมน์ 255 อักขระเท่านั้น

แก้ไข: นี่เป็นปัญหาที่คุณพูดถึง Webweaver หรือไม่ รูปแบบ> เซลล์> ตัดข้อความทำให้ตัวอักษรที่เหลือสามารถมองเห็นได้หรือไม่

แก้ไข: ไม่เป็นไรคำตอบนี้ค่อนข้างไม่เกี่ยวข้องกับปัญหาในมือ (อาจเกี่ยวข้องกัน แต่ก็ไม่ได้ตอบคำถาม)


ไม่นั่นคือ COLUMN WIDTH จากตารางเดียวกัน "จำนวนอักขระทั้งหมดที่เซลล์สามารถมีได้" คือ 32,767 ตัวอักษร
— Vicky

@Vicky นั่นไม่ใช่ปัญหาที่ผู้ถามกำลังประสบใช่ไหม หรือฉันตีความคำถามผิดหรือเปล่า?
— Marcus Chan

@nixda จริงหรือ ใช่จริงน่ารำคาญ ฉันไม่สามารถเชื่อว่า excel ไม่สามารถรองรับ 255 chars ได้มากขึ้น มีวิธีการทำเช่นนี้!
— SwiftD

@ Marcus ฉันไม่เข้าใจความหมายของความกว้างของคอลัมน์ นี่ไม่ได้เป็นเพียงปัญหาการแสดงผลข้อมูลไม่ได้อยู่ที่นั่น มันถูกตัดสั้น เมื่อฉันบันทึกเป็น csv ข้อมูลไม่ได้อยู่ที่นั่น เมื่อฉันทำ len (เซลล์) ผลลัพธ์จะเป็น 255
— SwiftD

@MarcusChan จำนวนอักขระควรถูก จำกัด ที่ 32767 ผู้ใช้กำลังประสบกับมันถูก จำกัด ที่ 255 สิ่งที่คุณอ้างถึงคือความกว้างของคอลัมน์ที่เกี่ยวข้องกับวิธีการแสดงคอลัมน์ซึ่งไม่ใช่ปัญหาของ OP
— Vicky

0

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

การแก้ไข:

  1. การใช้ Excel รุ่นที่ทันสมัยในเซลล์ที่ไม่ได้ใช้งานที่แตกต่างกันบนแผ่นงานให้สร้างสิ่งที่จัดรูปแบบและ / หรือเงื่อนไขช่วงที่ผสานสำหรับเซลล์ปัญหา
  2. ตรวจสอบให้แน่ใจว่าได้ตั้งค่าเป็นรูปแบบทั่วไปหรือข้อความ
  3. ตัดหรือคัดลอกและวางเซลล์รุ่นใหม่ที่สร้างขึ้นใหม่ (หรือช่วงที่ผสาน) และวางไว้เหนือรุ่นเก่าหรือไม่ดี
  4. ตอนนี้เมื่อป้อนข้อมูลลงในเซลล์ปัญหาจะไม่ปรากฏอีกต่อไป

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


0

ฉันมีปัญหาที่คล้ายกันค่าทั้งหมดของฉันอยู่ในรูปแบบ (เพื่อให้สามารถแปลงตัวเลขเป็นตัวเลขข้อความเป็นข้อความ แต่ถูกตัดเป็นข้อความยาว:

...,="Long Text........",...

หากคุณใส่ = ที่จุดเริ่มต้นคุณจะเห็นอักขระข้อความแรก 255 ตัวเท่านั้นเนื่องจาก EXCEL คิดว่าเป็นตัวเลขดังนั้นให้ลบ = เมื่อเริ่มต้น

หวังว่ามันจะช่วย


1
สิ่งนี้แตกต่างจากสิ่งที่คนอื่นพูดถึงแล้วในคำตอบหรือไม่? สิ่งนี้อาจต้องตั้งค่าสถานะ ged และคุณสามารถขอให้ผู้ดำเนินการแปลงเป็นความคิดเห็นได้เนื่องจากคุณไม่มีตัวแทนเพียงพอที่จะทำด้วยตัวเอง
— Pimp Juice IT

0

วิธีแก้ปัญหา (พร้อมใช้งานใน Excel 2016) ...

ตัวเลือก A. ให้ Excel เรียกใช้ตัวช่วยสร้างการนำเข้าข้อความ (โดยใช้นามสกุลไฟล์. txt หรือใช้นามสกุล. xls ยอมรับคำเตือนเลือกคอลัมน์แรกแล้วทำ Data => 'Text to Columns') จากนั้นเปลี่ยนประเภทคอลัมน์จากทั่วไปเป็นข้อความใกล้กับส่วนท้ายของวิซาร์ด

ตัวเลือก B. ใช้ Get & Transform ข้อมูล => แบบสอบถามใหม่ => จากไฟล์ => จาก CSV


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