วิธีการแสดงไฟล์. csv ภายใน Excel 2013 อย่างถูกต้อง


190

ดูเหมือนว่า Excel 2013 จะอ่านไฟล์ CSV ไม่ถูกต้อง (ใช้ Excel 2010) ทุกครั้งที่ฉันเปิดไฟล์. csv ข้อมูลทั้งหมดของฉันจะปรากฏในคอลัมน์แรก

ฉันรู้ว่าฉันสามารถไปDATA, Convertและจากนั้นเลือกcommasแต่ชุดนี้ขึ้นมาไม่ได้ถูกบันทึกและผมเบื่อการทำเช่นนี้ทุกครั้งที่ผมเปิดชนิดของไฟล์นี้

ฉันจะตั้งค่า Excel 2013 ให้แสดงไฟล์ CSV (คั่นด้วยเครื่องหมายจุลภาค) ได้ทุกครั้งหรือไม่


1
เมื่อคุณเปิดไฟล์ข้อความใด ๆ จะปรากฏขึ้น?
Andre Silva

ไม่ไม่มีข้อความปรากฏ
เดวิด

ประสบการณ์ของฉันคือถ้าไฟล์มีแถวส่วนหัว Excel 2013 จะผ่านตัวช่วยสร้างการนำเข้าโดยอัตโนมัติ หากไม่มีแถวส่วนหัวแสดงว่าเป็นคอลัมน์เดียวต่อแถว
StarPilot

คำตอบ:


401

เปิดไฟล์ CSV ด้วยโปรแกรมแก้ไขข้อความที่ดีเช่นNotepad ++และเพิ่มข้อความต่อไปนี้ในบรรทัดแรก:

sep=,

ตอนนี้เปิดด้วย excel อีกครั้ง

สิ่งนี้จะตั้งค่าตัวคั่นเป็นเครื่องหมายจุลภาคหรือคุณสามารถเปลี่ยนเป็นสิ่งที่คุณต้องการ


3
ทางออกที่ดีที่สุด แต่ไม่ใช่สิ่งที่ฉันคาดหวังไว้ การตั้งค่านั้นไม่ได้มาจาก Excel นั่นหมายความว่าฉันต้องเขียนบรรทัดด้านบนนี้ในไฟล์ CSV ทั้งหมดของฉัน
เดวิด

31
ความจริงที่ว่านี่ไม่ใช่มาตรฐานไม่มีแอปพลิเคชันที่เขียน CSV เพิ่มบรรทัดนี้และมีเพียง Excel (เท่าที่ฉันรู้) ยอมรับเท่านั้น ทำให้สิ่งนี้เป็นโซลูชันที่ดีที่สุด ไม่พูดถึงว่าสิ่งนี้ไม่ได้ผลสำหรับ Excel 2007 (ที่ดีที่สุดที่เรามีที่นี่ในที่ทำงาน)
jmarkmurphy

21
เราไม่ได้พูดถึงมาตรฐาน เรากำลังพูดถึง Microsoft Excel Excel มาพร้อมกับการกำหนดค่าและฮอตคีย์ที่แตกต่างกันขึ้นอยู่กับภาษา สิ่งนี้ทำให้การนำเข้าไฟล์ CSV เป็นปริศนา นี่เป็นเพียงวิธีแก้ปัญหาและฉันเชื่อว่ามันช่วยคนจำนวนมากส่วนใหญ่เป็นผู้ใช้ที่มีพลังแม้ว่าจะไม่ใช่คำตอบที่ดีที่สุด
Guilherme Viebig

10
ต้องการโซลูชันที่ไม่เกี่ยวข้องกับการเพิ่มบรรทัดลงในไฟล์เนื่องจากจะทำให้เกิดสิ่งอื่น ๆ ที่จำเป็นต้องใช้ไฟล์ ลองใช้โซลูชันการตั้งค่าภูมิภาคแล้ว แต่การตั้งค่าดังกล่าวแล้วและ excel ยังคงใส่ทุกอย่างไว้ในคอลัมน์แรก
Elliot

2
สิ่งนี้แสดงบรรทัดถ้าคุณเปิด csv ใน Lotus Symphony Spreadsheets ทำงานได้ดีใน MS excel แม้ว่า
Arda

93

สำหรับ Excel 2013:

  1. เปิดสมุดงานเปล่า
  2. ไปที่แท็บDATA
  3. คลิกปุ่มจากข้อความในส่วนข้อมูลภายนอกทั่วไป
  4. เลือกไฟล์ CSV ของคุณ
  5. ทำตามข้อความช่วยสร้างการนำเข้า (ในขั้นตอนที่ 2 เลือกตัวคั่นของข้อความของคุณ)

http://blogmines.com/blog/how-to-import-text-file-in-excel-2013/


38

ปัญหามาจากตัวเลือกภูมิภาค ตัวแยกทศนิยมใน win 7 สำหรับประเทศในยุโรปคือ coma คุณต้องเปิดแผงควบคุม -> ตัวเลือกภูมิภาคและภาษา -> การตั้งค่า Aditional -> ตัวคั่นทศนิยม: คลิกเพื่อป้อนจุด (.) และไปที่ตัวคั่นรายการป้อน coma (,) นี่คือ !


5
สิ่งนี้ใช้ไม่ได้ ฉันมีชุดนี้ตามที่ระบุและจะถูกละเว้น ทุกอย่างจนถึงในคอลัมน์แรก
Elliot

1
น่าทึ่ง - นี่เพิ่งช่วยเพื่อนร่วมงานที่ใช้ Office 2011 เราตั้งภูมิภาคของเธอจากโปแลนด์ (ซึ่งใช้ "," เป็นตัวคั่นทศนิยม) ไปยังสหราชอาณาจักรและสิ่งนี้ทำให้มันคงที่ ทำไมสิ่งนี้ควรสร้างความแตกต่างฉันไม่มีความคิด ...
John

3
วิธีนี้ใช้ได้ผลกับฉัน (excel 2013) ฉันปรับรูปแบบภูมิภาคของฉัน: ฉันตั้งจุด (.) เป็น "ตัวคั่นทศนิยม", เครื่องหมายจุลภาค (,) เป็น "ตัวคั่นหลักพัน" และเครื่องหมายจุลภาค (,) เป็น "ตัวคั่นรายการ"
cesargastonec

1
ฉันใช้รูปแบบ "อังกฤษ (แคนาดา)" เริ่มต้นของ Windows ซึ่งปกติจะแสดงไฟล์ CSV อย่างถูกต้อง (คั่นคอลัมน์) เมื่อเปิดไฟล์โดยใช้ Excel 2013-2016 เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นหลังจากเปิดไฟล์ CSV อีกครั้งหนึ่งในแอปพลิเคชันของฉันกำลังเปลี่ยนรูปแบบการกำหนดหมายเลขเริ่มต้น ตามที่ระบุไว้ที่นี่หลังจากเปลี่ยนกลับเป็นจุด (.) เป็น "ตัวคั่นทศนิยม" และเครื่องหมายจุลภาค (,) เป็นรูปแบบตัวเลข "ตัวคั่นรายการ" ไฟล์ CSV ก็แสดงผลได้ดี ไม่จำเป็นต้องมีวิธีแก้ปัญหาแฟนซีที่เกี่ยวข้องกับการแฮ็กแถวแรกของไฟล์ CSV พร้อมแผ่นจดบันทึกเพื่อเพิ่ม "sep =,"
JP slash otterlover

1
ที่สุด! หลังจากพยายามนานกว่าหลายนาทีฉันควรแทนที่ด้วย regex ใน Notepad ++ ตัวคั่นจุดทศนิยม / เครื่องหมายจุลภาคและไม่ใช่ตัวอักษรในเครื่องหมายคำพูด ฯลฯ ฉันได้รับการเตือนเกี่ยวกับคำตอบนี้และตั้งค่าภาษาของฉันแตกต่างกันเช่นที่ระบุไว้ที่นี่ ตอนนี้มันแยกคอลัมน์และตัวเลขออกมาอย่างเหมาะสมเช่นกันโดยไม่ทำให้ข้อความยุ่งเหยิง
Fabian Röling

25

ฉันรู้ว่าคำตอบได้รับการตอบรับแล้ว แต่สิ่งหนึ่งที่ต้องตรวจสอบคือการเข้ารหัสไฟล์ CSV ฉันมีสคริปต์ Powershell ที่สร้างไฟล์ CSV โดยค่าเริ่มต้นมันถูกเข้ารหัสเป็นUCS-2 Little Endian (ต่อ Notepad ++) มันจะเปิดไฟล์ในคอลัมน์เดียวใน Excel และฉันต้องทำการแปลงข้อความเป็นคอลัมน์เพื่อแยกคอลัมน์ การเปลี่ยนสคริปต์ให้เข้ารหัสเอาต์พุตเดียวกันกับ "ASCII" ( UTF-8 ที่ไม่มี BOMต่อ Notepad ++) อนุญาตให้ฉันเปิด CSV โดยตรงโดยแยกคอลัมน์ออก คุณสามารถเปลี่ยนการเข้ารหัสของ CSV ในNotepad ++ ได้เช่นกัน

  • การเข้ารหัสเมนู> แปลงเป็น UTF-8 โดยไม่มี BOM
  • บันทึกไฟล์ CSV
  • เปิดใน Excel คอลัมน์ควรจะแยก

3
ฉันขอขอบคุณคำตอบนี้ ฉันชอบที่จะใช้Some-Command | Out-File -Encoding Defaultซึ่งมักจะให้การเข้ารหัส ANSI ที่ถูกต้อง (ค่าเริ่มต้นจากโรงงานในสหรัฐอเมริกาเป็นอย่างน้อย)
Mister_Tom

ดังนั้นหากคุณไม่ได้ระบุการเข้ารหัสให้Out-Fileเข้ารหัสไฟล์เป็นอย่างอื่นที่ไม่ใช่Defaultค่าเริ่มต้น ฉันพยายามที่จะเข้าใจว่า ... มันเป็นค่าเริ่มต้น ... แต่ไม่ได้ใช้โดยค่าเริ่มต้น ... และดังนั้นจึงไม่ใช่ค่าเริ่มต้น?
jdgregson

ใช้ "- เข้ารหัสเริ่มต้น" แก้ไขให้ฉัน ขอบคุณ!
Kirk Liemohn

21

คุณสามารถเลือกตัวคั่นที่คุณต้องการใน Excel 2013 ไปที่ DATA -> Text To Columns -> เลือกตัวคั่น -> จากนั้นเลือกตัวคั่น "Tab, เครื่องหมายอัฒภาค, เครื่องหมายจุลภาค, ช่องว่างหรืออื่น ๆ " และคุณจะเห็นการเปลี่ยนแปลงทันทีใน "จากนั้นคลิก FInish

เมื่อคุณมีรูปแบบที่คุณต้องการคุณเพียงบันทึกเอกสารและมันจะเป็นแบบถาวร


2
นี่ไม่ได้ตอบคำถามหลัก เราต้องการให้สิ่งนี้เป็นพฤติกรรมเริ่มต้นสำหรับไฟล์ดังกล่าวไม่ใช่เพื่อแก้ไขในไฟล์หนึ่งไฟล์
Elliot

17

นำมาจาก/superuser/238944/how-to-force-excel-to-open-csv-files-with-data-arranged-in-columns

พฤติกรรมของ Excel เมื่อเปิดไฟล์ CSV หนักขึ้นอยู่กับการตั้งค่าท้องถิ่นของคุณและที่เลือกแยกรายการภายใต้ภาคและภาษา » รูปแบบ » ขั้นสูงขั้นสูงตามค่าเริ่มต้น Excel จะถือว่าทุก CSV ถูกบันทึกด้วยตัวคั่นนั้น สิ่งใดเป็นจริงตราบใดที่ CSV ไม่ได้มาจากประเทศอื่น!

หากลูกค้าของคุณอยู่ในประเทศอื่นพวกเขาอาจเห็นผลลัพธ์อื่นคุณคิดว่า

ตัวอย่างเช่นที่นี่คุณจะเห็นว่า Excel ของเยอรมันจะใช้เครื่องหมายอัฒภาคแทนเครื่องหมายจุลภาคเหมือนในสหรัฐอเมริกา

การตั้งค่าภูมิภาค


> วิธีนี้ใช้ได้กับฉัน (excel 2013) ฉันปรับรูปแบบภูมิภาคของฉัน: ฉันตั้งจุด (.) เป็น "ตัวคั่นทศนิยม", เครื่องหมายจุลภาค (,) เป็น "ตัวคั่นหลักพัน" และเครื่องหมายจุลภาค (,) เป็น "ตัวคั่นรายการ" - cesargastonec 13 กรกฎาคม 2558 เวลา 16: 05
Alex78191

1
หรือคุณสามารถเปลี่ยนตัวคั่นทศนิยมในตัวเลือกของ Excel superuser.com/a/1470373
Alex78191

4

อีกปัญหาที่เป็นไปได้คือไฟล์ csv มีเครื่องหมายคำสั่งซื้อไบต์ "FEFF" เครื่องหมายลำดับไบต์มีจุดประสงค์เพื่อตรวจสอบว่าไฟล์ถูกย้ายจากระบบโดยใช้ไบต์ขนาดใหญ่หรือน้อยหรือสั่งซื้อไปยังระบบของ endianness ตรงกันข้าม https://en.wikipedia.org/wiki/Byte_order_mark

การลบเครื่องหมายลำดับไบต์ "FEFF" โดยใช้โปรแกรมแก้ไขฐานสิบหกควรอนุญาตให้ Excel อ่านไฟล์

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