ฉันจะให้ Excel นำเข้าไฟล์ CSV ด้วยเครื่องหมายจุลภาคในฟิลด์เนื้อหาบางส่วนได้อย่างไร


13

ฉันจะให้ Excel นำเข้าไฟล์ CSVของฉันได้อย่างไร

ไฟล์

ฉันมีไฟล์ที่อ้างว่าเป็น CSV มันมี 10 สาขาซึ่งทั้งหมดถูกล้อมรอบด้วยคำพูดสอง (ใช่แม้กระทั่งวันที่และตัวเลข.) 2 หรือ 3 ของเขตข้อมูลเหล่านี้ประกอบด้วยเครื่องหมายจุลภาค แต่ข้อมูลในฟิลด์เหล่านี้ยังล้อมรอบด้วยเครื่องหมายคำพูด

ปัญหา

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

ดังนั้นจึงแยกฟิลด์ที่มีเครื่องหมายจุลภาคเป็นหลายคอลัมน์

นี่มันแย่อย่างน้อยสำหรับฉัน

ตัวอย่างข้อมูล

"20051", "", "2009 Sep 30 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, SOMETEXT, 192 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT, SOMETEXT, 195 - SOMETEXT - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT "

ฉันลองทำอะไร

ฉันใช้เครื่องมืออำนวยความสะดวกการนำเข้าเพื่อระบุตัวคั่นและสิ่งนี้ แต่ดูเหมือนจะไม่ช่วย

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

ฉันจะลองอะไรอีก


1
Excel รุ่นใด และมันได้รับการแก้ไขอย่างสมบูรณ์หรือไม่
harrymc

ฉันได้เห็นสิ่งนี้ในปี 2002 และ 2007 ฉันไม่แน่ใจเกี่ยวกับปี 2007 แต่ฉันค่อนข้างแน่ใจว่า 2002 เป็นรุ่นล่าสุดอย่างเต็มที่
Rory Becker

คุณสามารถให้ลิงค์ไปยัง CSV ได้หรือไม่ หรือเวอร์ชันที่ตัดทอนที่แสดงถึงปัญหา
Josh Comley

เพิ่มข้อมูลตัวอย่างด้านบนแล้ว
Rory Becker

คำตอบ:


13

ฉันแค่ลองทดสอบอย่างรวดเร็วที่จำลองปัญหาของคุณ

ฉันสร้าง CSV 1 บรรทัดใน Word (ซึ่งใช้การเสนอราคาอัจฉริยะ) เป็น test.csv“ 123”,“ 4,5,6” และเปิดใน Excel ตามที่คุณอธิบาย

ลองแทนที่“ และ” ด้วย "


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

เช่นแทน

"20051", "", "2009 Sep 30 02:53:23", ...

คุณต้องการ

"20051","","2009 Sep 30 02:53:23",...

การแทนที่นิพจน์ปกติที่เหมาะสมควรสามารถจัดการได้

Find:    |("[^"]*",) |
Replace: |\1|

(ไพพ์อักขระสำหรับตัวชี้นำภาพเท่านั้น)

หรือเพียงแค่ปรับเปลี่ยนรหัส. Net หากคุณสามารถเข้าถึงได้ ;-)

นอกจากนี้ตามที่ Arjan ชี้ให้เห็นคุณอาจต้องแปลงไฟล์จาก UTF-8 เป็น ANSI เพื่อป้องกันเซลล์ A1 ไม่ให้มี BOM และ qoutes โดยรอบ

ฉันเจอ CSV ที่เข้ารหัส 22 ANSI ที่ไม่ได้จัดการอักขระนานาชาติและ UTF ที่เข้ารหัส CSV ไม่ถูกจัดการอย่างเหมาะสมโดย Excel; และไม่พบวิธีแก้ปัญหาในขณะที่ลบล้าง CSV หากต้องการการสนับสนุนอักขระสากลรูปแบบ XML (หรือ XLS ดั้งเดิม) จะเป็นหนทางเดียวที่จะไปได้โดยเสียค่าใช้จ่าย


ไม่มีการเสนอราคาที่เกี่ยวข้อง ไฟล์นี้สร้างขึ้นเพื่อใช้เครื่องหมายคำพูด std จากโปรแกรมที่เขียนด้วย. Net
Rory Becker

ฉันไม่ได้ตั้งใจจะบอกว่าควรเข้ารหัสไฟล์ UTF-8 แตกต่างกัน แต่เมื่อนำเข้า UTF-8 แน่นอนว่าต้องบอก Excel ว่าการเข้ารหัสคืออะไร และ UTF-8 จะถูกซ่อนไว้ที่ใดที่หนึ่งด้านล่างในรายการเข้ารหัสที่ยาว
Arjan

ฉันได้นำเข้าไฟล์ CSV ที่เข้ารหัส UTF-8 จำนวนมากแล้ว ฉันทราบว่าถ้าพวกเขามี BOM
Arjan

@lumbarious: คุณเป็นสตาร์! ทำงานอย่างสมบูรณ์แบบ ... ฉันไม่สามารถเชื่อว่า Excel ไม่สามารถจัดการกับเรื่องนี้ :(
Rory Becker

1
ใช่ช่องว่างที่เห็นได้ชัดระหว่างเขตข้อมูล จำกัด Excel 2011 ทั้งหมดการลบช่องว่างจะแก้ไขปัญหาและยังป้องกันไม่ให้ Excel รวมเครื่องหมายคำพูดเป็นส่วนหนึ่งของข้อมูล ฉันเดาว่ามีสเป็คที่ไหนสักแห่งที่ระบุว่าอัญประกาศคู่เท่านั้นกำหนดเขตข้อมูลถ้าพวกเขาอยู่ติดกับเครื่องหมายจุลภาคโดยตรง
Peter Gluck

9

ปัญหานี้รบกวนฉันมาหลายปีแล้ว ฉันเพิ่งค้นพบวิธีแก้ปัญหาและมันก็ถูกกล่าวถึงในคำตอบข้างต้น แต่ไม่ได้สะกดอย่างชัดเจน

มันเป็นพื้นที่หลังเครื่องหมายจุลภาค!

สิ่งนี้ไม่ได้นำเข้าสู่ excel;

HEADER1, HEADER2
"1,000", "2,000"

ในขณะที่

HEADER1,HEADER2
"1,000","2,000"

Works!


3
ยินดีต้อนรับสู่ Super User! คำตอบนี้เขียนขึ้นด้วยวิธีที่เป็นประโยชน์และชัดเจน ขอบคุณสำหรับการสนับสนุนของคุณและเราหวังว่าคุณจะติด
user1717828

YAAAS! คำตอบที่ยอมรับมีคำตอบที่แท้จริงสำหรับคำถามที่ฝังอยู่ซึ่งแตกต่างจากคำตอบนี้ op ไม่ได้ใช้เครื่องหมายอัญประกาศ
dardub


2

เมื่อฉันพยายามเปิดไฟล์นี้ Excel จะละเว้นเครื่องหมายคำพูดทั้งหมดและถือว่าพวกเขาเป็นส่วนหนึ่งของข้อมูล ดังนั้นจึงแยกฟิลด์ที่มีเครื่องหมายจุลภาคเป็นหลายคอลัมน์

หากคุณไม่ได้ตั้งใจใช้คำพูดอัจฉริยะเช่น lumbarius แนะนำและสมมติว่าคุณใช้ Windows: อาจเกิดจากการตั้งค่าภูมิภาคของคุณ เมื่อดับเบิลคลิกหรือใช้ไฟล์»เปิดจากนั้น Excel จะไม่ขอรายละเอียดใด ๆ จากคุณ แต่ใช้การตั้งค่าเหล่านี้

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


นี้ดูเหมือนมากขึ้นเช่นความคิดเห็นมากกว่าคำตอบ ...
Metafaniel

คำแนะนำนี้แก้ไขปัญหาของฉันอย่างแน่นอน! การทำการนำเข้า CSV (ข้อมูล> จากข้อความ / CSV) ไม่ทำงานตามที่คาดไว้ แต่ถ้าฉันเพิ่งทำไฟล์> เปิดบนไฟล์ CSV มันจะทำงานได้ จากนั้นฉันก็สามารถคัดลอก / วางทั้งตารางลงในสมุดงานอื่นได้
WOUNDEDStevenJones

1

คุณตรวจสอบการเข้ารหัสอักขระของไฟล์แล้วหรือยัง? ลองตั้งค่าการเข้ารหัสอักขระเป็น UTF-8

คุณสามารถใช้notepad2เพื่อเปลี่ยนการเข้ารหัสตัวอักษร


มีการรายงานการเข้ารหัสโดย Notepad2 ให้เป็น "UTF8 พร้อมลายเซ็น"
Rory Becker

จากนั้นในขณะที่นำเข้าคุณจะต้องเลื่อนลงในรายการการเข้ารหัส UTF-8 ถูกซ่อนอยู่ที่ไหนสักแห่งในรายการ (ไม่จำเป็นต้องใช้ไฟล์ CSV ที่เข้ารหัส UTF-8 แต่เนื่องจากอินพุตของคุณเป็น UTF-8 แล้วคุณจำเป็นต้องแจ้งให้ Excel ทราบว่าจะใช้อะไรโปรดทราบว่าอักขระเครื่องหมายคำพูดปกติจะเข้ารหัสเหมือนกันใน ASCII, Western และ UTF -8 แต่บางทีลายเซ็น (มาร์คไบต์สั่งซื้อ) หรือบางตัวละครอื่น ๆ ทำเลอะ)?
Arjan

@Peter ทำไมต้องเปลี่ยนลิงค์อย่างเป็นทางการเป็น Wikipedia? มันไม่สมเหตุสมผลเลยเหรอ? เราไม่ต้องการส่งคนมากเกินไปและนี่ไม่รับประกันการแก้ไขแน่นอน - โดยเฉพาะในโพสต์สองปี
slhck

1

เพียงเพิ่มคำตอบที่นี่: เน้น SPACES หลัง COMMAS ในไฟล์ CSV ของคุณ Excel จะไม่ชอบสิ่งเหล่านี้หากคุณได้เสนอเขตข้อมูลในข้อมูลของคุณ

Excel ชอบ (ข้อมูล 4 คอลัมน์):

a, b, c, d

แต่ไม่ชอบ (3 คอลัมน์ของข้อมูล):

a, "b, c", d

มันชอบ (3 คอลัมน์ของข้อมูล):

a,"b, c",d

ฉันเพิ่งพบปัญหานั้น ฉันกระแทกหัวของฉันกับผนังจนกว่าจะถึงบันทึกนี้ นี่ช่างยอดเยี่ยมมาก ฉันกำลังใช้งาน Excel 2017 และความโง่เขลายังคงมีอยู่ ...
อัลเบิร์ต Godfrind

1

วันนี้ฉันเจอปัญหานี้และพบวิธีแก้ปัญหาที่เหมาะกับฉัน

สภาพแวดล้อม / บริบทของฉัน: ฉันมีหน้าเว็บที่มีคำถาม (แบบฟอร์ม) บางคำถามที่มีทั้งเครื่องหมายคำพูดคู่และเครื่องหมายจุลภาค ทั้งคำถามและคำตอบถูกดึงออกมาจากฐานข้อมูลและเขียนลงในไฟล์ Excel เพื่อการรายงาน

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

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

-> บนเว็บไซต์เครื่องหมายคำพูดเดี่ยวสองคำดูเหมือนเครื่องหมายคำพูดคู่กับผู้เยี่ยมชมเว็บไซต์

-> ในไฟล์ Excel อีกครั้งเครื่องหมายคำพูดเดี่ยวสองใบจะมีลักษณะเหมือนเครื่องหมายคำพูดคู่สำหรับผู้ใช้ที่ดูข้อมูลรายงาน

ฉันรู้ว่าโซลูชันนี้ใช้ไม่ได้กับทุกคน แต่หวังว่าจะช่วยได้บ้าง


1

ฉันสามารถทำได้โดยใช้:

a,b,c,"=""(1,2,3)"""

ซึ่งให้สี่คอลัมน์:

|  a  |   b   |   c   |   (1,2,3)   |

0

อีกวิธีในการทำ:

  1. เปิดไฟล์ใน LibreOffice หรือ OpenOffice Calc
  2. ตั้งค่าตัวเลือกการนำเข้าที่ถูกต้องเช่น UTF-8 คั่นด้วยเครื่องหมายจุลภาค ...
  3. เก็บไฟล์เป็น ods หรือ xls
  4. เปิดไฟล์ใหม่ใน Excel

ด้วยวิธีนี้คุณสามารถตั้งค่าการเข้ารหัสที่ถูกต้องเช่น UTF-8 ซึ่ง Excel รุ่นใดไม่สามารถจัดการได้อย่างถูกต้องหากไม่มี BOM และคุณไม่ต้องกังวลเกี่ยวกับ regex ที่อาจแทนที่ข้อความในเขตข้อมูลและ คุณไม่สังเกตเห็นมัน

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