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 Το μπορεί να είναι null, ο αριθμός των στηλών, μια λίστα ονομάτων στηλών, ένας τύπος πίνακα ή μια εγγραφή επιλογών.
  • delimiter Το μπορεί να είναι ένας μόνο χαρακτήρας, μια λίστα χαρακτήρων ή η τιμή "", η οποία υποδεικνύει ότι οι γραμμές πρέπει να διαιρεθούν με διαδοχικούς χαρακτήρες κενού χώρου. Προεπιλογή: ",".
  • Ανατρέξτε στο ExtraValues.Type για τις υποστηριζόμενες τιμές του extraValues.
  • encoding Το καθορίζει τον τύπο κωδικοποίησης κειμένου.

Εάν έχει καθοριστεί μια εγγραφή για columns (και delimiterτα , extraValuesκαι encoding είναι null), ενδέχεται να δοθούν τα παρακάτω πεδία εγγραφής:

  • Delimiter: Ένας οριοθέτης στήλης ενός χαρακτήρα. Προεπιλογή: ",".
  • Columns: Μπορεί να είναι null, ο αριθμός των στηλών, μια λίστα ονομάτων στηλών ή ένας τύπος πίνακα. Εάν ο αριθμός των στηλών είναι μικρότερος από τον αριθμό που βρέθηκε στα δεδομένα εισόδου, οι πρόσθετες στήλες θα αγνοηθούν. Εάν ο αριθμός των στηλών είναι μεγαλύτερος από τον αριθμό που βρέθηκε στα δεδομένα εισόδου, οι πρόσθετες στήλες θα είναι null. Όταν δεν καθορίζεται, ο αριθμός των στηλών θα προσδιορίζεται από τα στοιχεία εισόδου.
  • Encoding: Η κωδικοποίηση κειμένου του αρχείου. Προεπιλογή: 65001 (UTF-8).
  • CsvStyle: Καθορίζει τον τρόπο χειρισμού των εισαγωγικών.
    • CsvStyle.QuoteAfterDelimiter (προεπιλογή): Τα εισαγωγικά σε ένα πεδίο είναι σημαντικά μόνο όταν εμφανίζονται αμέσως μετά τον οριοθέτη.
    • CsvStyle.QuoteAlways: Τα εισαγωγικά σε ένα πεδίο είναι πάντα σημαντικά, ανεξάρτητα από το σημείο που εμφανίζονται.
  • QuoteStyle: Καθορίζει τον τρόπο χειρισμού των αλλαγών γραμμής που βρίσκονται μέσα σε εισαγωγικά.
    • QuoteStyle.Csv (προεπιλογή): Οι αλλαγές γραμμών σε εισαγωγικά αντιμετωπίζονται ως μέρος των δεδομένων, όχι ως το τέλος της τρέχουσας γραμμής.
    • QuoteStyle.None: Όλες οι αλλαγές γραμμών αντιμετωπίζονται ως το τέλος της τρέχουσας γραμμής, ακόμα και όταν εμφανίζονται μέσα σε μια τιμή σε εισαγωγικά.
  • IncludeByteOrderMark: Μια λογική τιμή που υποδεικνύει εάν θα συμπεριληφθεί ένα Σημάδι παραγγελίας Byte (BOM) στην αρχή της εξόδου CSV. Όταν οριστεί σε true, η BOM συντάσσεται (για παράδειγμα, BOM UTF-8: 0xEF 0xBB 0xBF). Όταν οριστεί σε false, δεν περιλαμβάνεται 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"]
})