อะไรคือความแตกต่างที่แท้จริงระหว่าง Excel CSV และ CSV มาตรฐาน?
ตัวอย่างเช่นเมื่อจัดการคอลัมน์ที่มีตัวแบ่งบรรทัดภายในเซลล์เดียวพวกเขาจะเข้ารหัสแตกต่างกันอย่างไร
อะไรคือความแตกต่างที่แท้จริงระหว่าง Excel CSV และ CSV มาตรฐาน?
ตัวอย่างเช่นเมื่อจัดการคอลัมน์ที่มีตัวแบ่งบรรทัดภายในเซลล์เดียวพวกเขาจะเข้ารหัสแตกต่างกันอย่างไร
คำตอบ:
ขึ้นอยู่กับสิ่งที่คุณกำหนดเป็น "มาตรฐาน" อย่างแน่นอน เท่าที่ฉันเกี่ยวข้อง Excel จะปฏิบัติตามกฎที่ระบุไว้ในRFC 4180 "รูปแบบทั่วไปและประเภท MIME สำหรับไฟล์ CSV"
พิจารณาตารางที่เซลล์แรกในแถวแรกมีตัวแบ่งสองบรรทัด ใน Excel จะมีลักษณะดังต่อไปนี้:
+---+---------------+------------+------------+
| | A | B | C |
+---+---------------+------------+------------+
| 1 | col1, line1a | | |
| | col1, line1b | | |
| | col1, line1c | col2, row1 | col3, row1 |
| 2 | col1, row2 | col2, row2 | col3, row2 |
+---+---------------+------------+------------+
ตอนนี้ Excel จะส่งออกสิ่งนี้อย่างไร มาดูกัน - เครื่องมือแก้ไขข้อความจะแสดงสิ่งนี้:
"col1, line1a
col1, line1b
col1, line1c","col2, row1","col3, row1"
"col1, row2","col2, row2","col3, row2"
ไม่ซับซ้อนมาก มันแทรก carriage return (hex 0D
) ที่มีการแบ่งบรรทัดในเซลล์ของเรา ทุกเซลล์ล้อมรอบด้วยเครื่องหมายคำพูดคู่ นอกจากนี้แถวจริงจะถูกคั่นด้วยการขึ้นบรรทัดใหม่
หากต้องการวิเคราะห์คำนี้อย่างถูกต้องจำเป็นต้องใช้โปรแกรมแยกวิเคราะห์ CSV
หากไม่ทำเช่นนั้นคุณจะพบสิ่งที่อ่านไม่ออกเช่นนี้โปรดทราบว่าขณะนี้มีสี่บรรทัดแทนที่จะเป็นสองบรรทัดเพราะไม่สามารถเพิกเฉยต่อการแบ่งบรรทัด
+---+---------------+------------+------------+
| | A | B | C |
+---+---------------+------------+------------+
| 1 | "col1, line1a | | |
| 2 | col1, line1b | | |
| 3 | col1, line1c" | col2, row1 | col3, row1 |
| 4 | col1, row2 | col2, row2 | col3, row2 |
+---+---------------+------------+------------+
แต่มาดูกันว่า RFC พูดว่าอะไรบางที Excel อาจจะถูกต้อง?
ฟิลด์ที่มีตัวแบ่งบรรทัด (CRLF) เครื่องหมายคำพูดคู่และเครื่องหมายจุลภาคควรอยู่ในเครื่องหมายคำพูดคู่
เรียบร้อยนั่นคือสิ่งที่ Excel ทำ ดังนั้นการสรุป Excel ดูเหมือนจะทำตามคำแนะนำของไฟล์ CSV "มาตรฐาน" ได้รับตัวแยกวิเคราะห์ CSV ที่เหมาะสมก็ควรจะสามารถอ่านไฟล์ Excel CSV ได้เช่นกัน
ความเข้าใจของฉันจากการใช้งาน csv ดั้งเดิมคือฟิลด์ข้อความทั้งหมดอยู่ในเครื่องหมายคำพูดและตัวเลขไม่จำเป็นต้องเป็น Excel ไม่ทำเช่นนี้และหากคุณพยายามอัปโหลดไฟล์ csv ที่สร้างจาก Excel ของคุณบนแพลตฟอร์มที่ไม่ใช่ไมโครซอฟท์พวกเขาจะล้มเหลว นี่คือวิธีการแบบไมโครซอฟท์มาตรฐานละเว้นการทำงานร่วมกันและมุ่งเน้นไปที่สุ่มสี่สุ่มห้าตามกฎ สิ่งที่คล้ายกันเกิดขึ้นกับ IE พวกเขาปฏิบัติตามกฎ html / css อย่างถูกต้องสำหรับคุณลักษณะการเติมและระยะขอบและละเว้นข้อเท็จจริงที่ว่าทุกเว็บเพจที่มีอยู่ ผลลัพธ์เกือบทุกหน้าเว็บมีกฎพิเศษสำหรับ IE ฉันค้นหาไฟล์ csv ที่สร้างโดย excel ที่ไร้ประโยชน์และใช้คอลัมน์ของ "concatenate" ฟังก์ชั่นเพื่อสร้างด้วยตนเองอย่างถูกต้อง