Csv.Document

ไวยากรณ์

Csv.Document(
    source as any,
    optional columns as any,
    optional delimiter as any,
    optional extraValues as nullable number,
    optional encoding as nullable number
) as table

เกี่ยวกับ

แสดงเนื้อหาของเอกสาร CSV เป็นตาราง

  • columns อาจเป็นค่าว่าง จํานวนของคอลัมน์ รายการของชื่อคอลัมน์ ชนิดตาราง หรือเรกคอร์ดตัวเลือก
  • delimiter อาจเป็นอักขระเดี่ยว รายการอักขระ หรือค่า ""ซึ่งระบุว่าควรแยกแถวตามอักขระช่องว่างที่อยู่ติดกัน ค่าเริ่มต้น: ","
  • โปรดดู ExtraValues.Type สําหรับค่าที่รองรับของ extraValues
  • encodingระบุชนิดการเข้ารหัสข้อความ

ถ้ามีการระบุเรกคอร์ดสําหรับ columns (และ delimiter, extraValuesและ encoding เป็น null) อาจได้รับเขตข้อมูลเรกคอร์ดต่อไปนี้:

  • Delimiter: ตัวคั่นคอลัมน์อักขระเดียว ค่าเริ่มต้น: ","
  • Columns: อาจเป็น null จํานวนของคอลัมน์ รายการของชื่อคอลัมน์ หรือชนิดตาราง ถ้าจํานวนคอลัมน์ต่ํากว่าจํานวนที่พบในข้อมูลป้อนเข้า คอลัมน์เพิ่มเติมจะถูกละเว้น ถ้าจํานวนคอลัมน์สูงกว่าจํานวนที่พบในข้อมูลป้อนเข้า คอลัมน์เพิ่มเติมจะเป็นค่าว่าง เมื่อไม่ได้ระบุ จํานวนคอลัมน์จะถูกกําหนดโดยสิ่งที่พบในข้อมูลป้อนเข้า
  • Encoding: การเข้ารหัสข้อความของไฟล์ ค่าเริ่มต้น: 65001 (UTF-8)
  • CsvStyle: ระบุวิธีการจัดการข้อความอ้างอิง
    • CsvStyle.QuoteAfterDelimiter (ค่าเริ่มต้น): ข้อความอ้างอิงในเขตข้อมูลจะมีความสําคัญทันทีหลังตัวคั่น
    • CsvStyle.QuoteAlways: ข้อความอ้างอิงในเขตข้อมูลจะมีความสําคัญเสมอ โดยไม่คํานึงถึงตําแหน่งที่แสดง
  • QuoteStyle: ระบุวิธีการจัดการตัวแบ่งบรรทัดที่อ้างถึง
    • QuoteStyle.Csv (ค่าเริ่มต้น): ตัวแบ่งบรรทัดที่อ้างถึงจะถือว่าเป็นส่วนหนึ่งของข้อมูล ไม่ใช่ที่จุดสิ้นสุดของแถวปัจจุบัน
    • QuoteStyle.None: ตัวแบ่งบรรทัดทั้งหมดจะถือว่าเป็นจุดสิ้นสุดของแถวปัจจุบัน แม้ว่าจะแสดงภายในค่าที่อ้างอิง
  • IncludeByteOrderMark: ค่าตรรกะที่ระบุว่าจะรวมเครื่องหมายใบสั่งไบต์ (BOM) ที่จุดเริ่มต้นของเอาต์พุต CSV หรือไม่ เมื่อกําหนดเป็น จริง BOM จะถูกเขียน (ตัวอย่างเช่น UTF-8 BOM: 0xEF 0xBB 0xBF); เมื่อกําหนดเป็น เท็จ จะไม่มีการรวม BOM ตัวเลือกนี้สามารถใช้ได้เฉพาะในสถานการณ์เอาต์พุตเท่านั้น ค่าเริ่มต้นเป็น false
  • ExtraValues: อ้างอิงถึง ExtraValues.Type สําหรับค่าที่รองรับของ ExtraValues

ตัวอย่าง 1

ประมวลผลข้อความ CSV พร้อมส่วนหัวของคอลัมน์

การใช้งาน

let
    csv = Text.Combine({"OrderID,Item", "1,Fishing rod", "2,1 lb. worms"}, "#(cr)#(lf)")
in
    Table.PromoteHeaders(Csv.Document(csv))

เอาท์พุท

Table.FromRecords({
    [OrderID = "1", Item = "Fishing rod"],
    [OrderID = "2", Item = "1 lb. worms"]
})

ตัวอย่าง 2

ประมวลผลข้อความ CSV ด้วยอักขระตัวคั่นหลายตัว ในตัวอย่างนี้ พารามิเตอร์ที่สามระบุรูปแบบ #|# ตัวคั่นที่จะใช้แทนค่าเริ่มต้น

การใช้งาน

let
    csv = Text.Combine({"OrderID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)")
in
    Table.PromoteHeaders(Csv.Document(csv, null, "#|#"))

เอาท์พุท

Table.FromRecords({
    [OrderID = "1", Color = "Red"],
    [OrderID = "2", Color = "Blue"]
})

ตัวอย่างที่ 3

ประมวลผลข้อความ CSV ด้วยตัวคั่นแบบกําหนดเองและจํานวนคอลัมน์คงที่

การใช้งาน

Csv.Document(
    "1|Barb#(cr)#(lf)2|Cal",
    [
        Delimiter = "|",
        Columns = 3
    ]
)

เอาท์พุท

Table.FromRecords({
    [Column1 = "1", Column2 = "Barb", Column3 = ""],
    [Column1 = "2", Column2 = "Cal", Column3 = ""]
})

ตัวอย่าง 4

ประมวลผลข้อความ CSV ด้วยตัวคั่นแบบกําหนดเองและชุดของชื่อคอลัมน์แบบกําหนดเอง ในขณะที่จัดการกับตัวแบ่งบรรทัดที่ฝังอยู่ภายในเครื่องหมายอัญประกาศเป็นจุดสิ้นสุดของแถวปัจจุบัน

การใช้งาน

Csv.Document(
    "1|Barb|""Smith#(cr)#(lf)2|Cal|Fisher",
    [
        Delimiter = "|",
        Columns = type table [ID = text, First Name = text, Last Name = text],
        QuoteStyle = QuoteStyle.None
    ]
)

เอาท์พุท

Table.FromRecords({
    [ID = "1", First Name = "Barb", Last Name = "Smith"],
    [ID = "2", First Name = "Cal", Last Name = "Fisher"]
})