ข้อมูลเมตา“ sep =” ที่คุณสามารถเพิ่มลงใน CSV คืออะไร


24

ในขณะที่พยายามหาวิธีเปิด CSV ให้ถูกต้องใน Excel บนพีซีสเปน (เป็นของลูกค้า) ฉันพบคำตอบมากมายที่แนะนำให้ใช้sep=,ที่ด้านบนของไฟล์:

บนหน้าของวิธีนี้วิธีการทำงาน แต่ไม่มีคำตอบเหล่านั้นให้ข้อมูลเพิ่มเติมใด ๆที่ตัวเลือกข้อมูลเมตานี้มาจาก ฉันพยายามค้นหาความหมาย (และจากนี้จึงพบคำตอบทั้งหมด) แต่ไม่สามารถรับข้อมูลเพิ่มเติมโดยเฉพาะอย่างยิ่งเนื่องจากเครื่องหมายวรรคตอนนั้นยากที่จะค้นหา

ความกังวลหลักของฉันคือหรือไม่นี้เป็นคุณลักษณะเฉพาะ Excel ฉันสงสัยว่ามันเป็น แต่ไม่พบสิ่งใดที่ยืนยันได้

บางคำถามที่เกี่ยวข้องคือ:

  • สามารถใช้อักขระใดในการตั้งค่านี้
  • มีการตั้งค่าอื่นใดบ้าง (เช่นอักขระการสิ้นสุดบรรทัดอักขระเครื่องหมายคำพูด ฯลฯ )
  • มีเครื่องมืออื่น ๆ ที่สนับสนุนคุณสมบัตินี้อย่างเป็นทางการหรือไม่?

ฉันหวังว่าจะมีเอกสารชิ้นหนึ่งที่ใครบางคนสามารถชี้ให้ฉันได้ว่าจะตอบคำถามเหล่านี้ทั้งหมดและอีกมากมาย; ฉันหามันไม่เจอ

ชี้แจงบางส่วน:

sep=ไม่ได้เป็นพารามิเตอร์ที่จะแยกวิเคราะห์เป็น มีไว้สำหรับวางไว้ใน CSV ตัวอย่าง:

sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"

4
ใช่นี้เป็นExcel ที่เฉพาะเจาะจง
Raystafarian

2
คุณสามารถรับสิ่งนี้ได้หรือไม่? ฉันนิ่งงันด้วยคำถามเดียวกันและฉันยังไม่พบรายละเอียดของ MS ที่อธิบายคุณสมบัตินี้ หากคุณสมบัตินี้ไม่มีเอกสารประกอบการโดย MS มันเป็นวิธีการ heck ออกไปในสถานที่แรก?
toddlermenot

@toddlermenot ไม่น่าเศร้า ทั้งหมดที่ฉันได้รับคือผู้คนยืนยันว่าเป็น Excel ที่เฉพาะเจาะจงโดยไม่มีการสำรองข้อมูลการยืนยันซึ่งน่าผิดหวัง
Burhan Ali

คำตอบ:


7

RFC 4180เป็นที่รู้จักกันทั่วไปว่าเป็นมาตรฐานสำหรับรูปแบบ CSV และไม่ได้กล่าวถึงคุณลักษณะดังกล่าว

โมเดล W3C สำหรับข้อมูลแบบตารางและข้อมูลเมตาบนเว็บระบุว่าเป็นคุณลักษณะที่ไม่อยู่ในขอบเขต:

ไฟล์ "CSV" หลายไฟล์ฝังข้อมูลเมตาเช่นในบรรทัดก่อนแถวส่วนหัวของเอกสาร CSV ข้อมูลจำเพาะนี้ไม่ได้กำหนดรูปแบบใด ๆ สำหรับการฝังข้อมูลเมตาภายในไฟล์ CSV นอกเหนือจากชื่อคอลัมน์ในแถวส่วนหัว

ดังนั้นในขณะที่ฉันไม่พบข้อพิสูจน์โดยตรงใด ๆ ว่าคุณลักษณะนี้เป็นเฉพาะของ Excel แต่นี่ก็เป็นกรณีที่ดูเหมือนจะไม่มีเอกสารมาตรฐานที่ครอบคลุมคุณลักษณะดังกล่าว


จัดหาที่ดี สิ่งหนึ่งที่ฉันควรพูดคือ sep = | กำหนด seperator สำหรับใช้ใน Excel เป็นอักขระไปป์ ('|') มันไม่ได้ใช้กันอย่างแพร่หลาย แต่ไม่ได้เป็นเอกสิทธิ์ของ Excel มันเป็นคำสั่งคั่น Excel iirc เวอร์ชันสากลมีอักขระที่แตกต่างกันเช่นภาษายุโรปบนเครื่องที่ใช้ excel ใช้อัฒภาค
var firstName

1
ฉันตระหนักถึงการใช้งาน (อาจจะไม่ชัดเจนทั้งหมดจากคำตอบของฉัน) ฉันเพิ่งชี้ให้เห็นว่าดูเหมือนว่า Excel จะนำเสนอคุณลักษณะนี้โดยใช้มาตรฐาน (สาธารณะ) ทุกชนิด
Stefan Kögl

0

เพื่อสนับสนุนคำตอบสำหรับคำถามของคุณ: "มีเครื่องมืออื่นใดที่สนับสนุนคุณสมบัตินี้อย่างเป็นทางการหรือไม่"

Apple Numbers นี้ไม่รองรับ (ฉันทดสอบโดยใช้ Numbers เวอร์ชั่น 3.6.2 แล้ว)

นอกจากนี้ยังไม่รองรับโดย csv2json ( https://www.npmjs.com/package/csv2json ) และ csvtojson ( https://www.npmjs.com/package/csvtojson )


-1

คำสั่ง sep = ใช้ในทุกประเทศที่ใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยมเช่นอิตาลี เนื่องจาก Excel ส่งออก CSV โดยใช้เครื่องหมายอัฒภาคแทนเครื่องหมายจุลภาคในประเทศเหล่านั้นหากคุณต้องการแน่ใจว่าสามารถอ่านไฟล์ในสหรัฐอเมริกาหรือประเทศอื่น ๆ ได้คุณต้อง

กันยายน =;

ด้านบนของไฟล์ นี่คือเฉพาะของ Excel และอาจถูกละเว้นโดยแอปพลิเคชันอื่น


-2

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

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

ระบบหนึ่งในประวัติศาสตร์ที่ฉันเจอใช้ขึ้นบรรทัดใหม่สำหรับจุดสิ้นสุดฟิลด์, 2 บรรทัดว่างสำหรับสิ้นสุดการบันทึกและ*!*!* END *!*!*สำหรับจุดสิ้นสุดของข้อมูล ฉันมักจะเจอการ,\t|:ใช้งานทั้งหมดเป็นตัวคั่นฟิลด์พร้อมกับอักขระควบคุมต่าง ๆ

สิ่งหนึ่งที่ต้องระวังคือฝรั่งเศสและคนอื่นใช้เครื่องหมายจุลภาคเป็นจุดทศนิยม - นี่อาจทำให้เกิดความสนุกและเกมทุกประเภท มีระดับมาตรฐานสำหรับไฟล์ csv ในrfc4180แต่มีบางครั้งที่คุณต้องการแก้ไขไฟล์ด้วยตนเองเมื่อส่งออกจากโปรแกรมหนึ่งและนำเข้าสู่อีกโปรแกรมหนึ่ง

ในการตอบคำถามส่วนที่สองของคุณ Python รวมถึงcsv reader / writerเป็นหนึ่งในไลบรารีมาตรฐานที่เสนอตัวเลือกต่อไปนี้:

  • delimiter- นี่คือตัวคั่นฟิลด์(ยกเว้นว่าใช้ Escape)
  • doublequote- ถ้าเป็นจริงจะมีการแสดงฟิลด์" ภายในเป็น""
  • escapechar- ลบความหมายพิเศษใด ๆ จากตัวละครต่อไปนี้เช่นถ้าตั้งไว้ที่การ\เสนอราคาสามารถแสดงเป็น\"
  • lineterminator- ปกติหนึ่ง\n, \r, \r\nหรือ\n\r
  • quotechar- อักขระที่ใช้ในการอ้างอิงสตริงโดยปกติ"หรือ'
  • quoting - ตั้งค่าสถานะเป็นหนึ่งใน:
    • ALL - ทุกฟิลด์อยู่ในเครื่องหมายคำพูดเช่น: "1","Free Beer","ASAP"
    • MINIMAL - เฉพาะเครื่องหมายคำพูดที่มีอักขระพิเศษเช่น: 1,"Beer, (Free)", Now, Please
    • QUOTE_NONNUMERIC - อ้างถึงสิ่งที่ไม่ใช่ตัวเลขเช่น: 1,"Beer, (Free)", "Now", "Please"
    • NONE - อย่าอ้างคำพูดแทนเช่น: 1,Beer\, (Free), Now, Please
  • skipinitialspace- ข้ามพื้นที่นำหน้าของแต่ละฟิลด์เพื่อให้คุณสามารถใช้งาน, แทนที่จะ,เป็นตัวคั่นฟิลด์

โดยทั่วไปความยืดหยุ่นและความคิดที่ดีของเครื่องมือที่สามารถนำเข้าไฟล์ csv คือตัวเลือกเหล่านี้มากขึ้น (อาจมีชื่อและ / หรือกลไกที่ต่างกัน) ซึ่งมันจะมี


2
นี่ไม่ตอบคำถามของฉัน มันอธิบายถึงสิ่งที่เป็น CSV ซึ่งฉันรู้อยู่แล้ว คำถามของฉันเกี่ยวกับไวยากรณ์บางส่วน มีพื้นหลังใดบ้างที่ฉันสามารถเพิ่มคำถามของฉันเพื่อชี้แจงสิ่งต่างๆ
Burhan Ali

1
ขอบคุณ แต่นั่นก็ยังไม่ช่วย sep=ไม่ใช่พารามิเตอร์สำหรับตัวแยกวิเคราะห์ ฉันได้เพิ่มความกระจ่างให้กับคำถามของฉัน
Burhan Ali

1
@SteveBarnes แต่เครื่องมือใด ๆ เช่นไลบรารี Python ที่คุณพูดถึงอนุญาตให้ตัวเลือกต่าง ๆ เป็นส่วนหนึ่งของเนื้อหาของไฟล์หรือไม่? นั่นคือฉันคิดว่าประเด็นหลักของคำถาม
Randy Orrison

1
"เพราะพวกเขาเป็นหนึ่งในคนแปลกประหลาดหลายคน" คือมันว่า? นั่นเป็นส่วนหนึ่งของสิ่งที่ฉันพยายามทำ ฉันไม่ต้องการรู้ว่า CSV คืออะไร ฉันไม่ต้องการทราบวิธีแยกวิเคราะห์ CSV ฉันต้องการรู้ว่าsep=มันคืออะไรและมาจากไหน
Burhan Ali

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