File.Contents ใช้อ่านข้อมูล binary ของไฟล์จากพาธที่ระบุ เพื่อนำเข้าข้อมูลจากระบบไฟล์ลงในโปรแกรม
= File.Contents(path as text, optional options as nullable record) as binary
= File.Contents(path as text, optional options as nullable record) as binary
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| path | text | Yes | พาธไฟล์ที่ต้องการอ่าน ต้องเป็น absolute path เช่น ‘C:\\Users\\Name\\Data.xlsx’ | |
| options | nullable record | Optional | null | ตัวเลือกเพิ่มเติม (สำหรับการใช้งานภายในเท่านั้น) |
let FilePath = "C:\\Users\\John\\Desktop\\Sales.xlsx", FileData = File.Contents(FilePath), ExcelFile = Excel.Workbook(FileData) in ExcelFile= let
FilePath = "C:\\Users\\John\\Desktop\\Sales.xlsx",
FileData = File.Contents(FilePath),
ExcelFile = Excel.Workbook(FileData)
in
ExcelFile
ไฟล์ Excel ที่แปลงเป็น binary data พร้อมสำหรับการประมวลผลเพิ่มเติม
let FilePath = "C:\\Data\\Employees.csv", FileData = File.Contents(FilePath), CSVContent = Csv.Document(FileData), Headers = Table.PromoteHeaders(CSVContent) in…= let
FilePath = "C:\\Data\\Employees.csv",
FileData = File.Contents(FilePath),
CSVContent = Csv.Document(FileData),
Headers = Table.PromoteHeaders(CSVContent)
in
Headers
ตารางข้อมูล CSV พร้อมใช้งาน โดยแถวแรกเป็น headers
let FilePath = "C:\\Data\\config.json", FileData = File.Contents(FilePath), TextData = Text.FromBinary(FileData, TextEncoding.Utf8), JSONData = Json.Document(Te…= let
FilePath = "C:\\Data\\config.json",
FileData = File.Contents(FilePath),
TextData = Text.FromBinary(FileData, TextEncoding.Utf8),
JSONData = Json.Document(TextData)
in
JSONData
ข้อมูล JSON ที่เปลี่ยนจาก binary เป็น text แล้วแปลงเป็นรูปแบบ JSON
let FolderPath = "C:\\Data\\Reports", FolderFiles = Folder.Contents(FolderPath), ExcelFiles = Table.SelectRows(FolderFiles, each Text.EndsWith([Name], ".xlsx"))…= let
FolderPath = "C:\\Data\\Reports",
FolderFiles = Folder.Contents(FolderPath),
ExcelFiles = Table.SelectRows(FolderFiles, each Text.EndsWith([Name], ".xlsx")),
FilesWithContent = Table.AddColumn(
ExcelFiles,
"FileContent",
each File.Contents([Folder Path] & [Name])
)
in
FilesWithContent
ตารางที่มีคอลัมน์ 'FileContent' ประกอบด้วยข้อมูล binary ของไฟล์ Excel ทั้งหมด
ใช่ครับ ต้องเป็น absolute path เช่น ‘C:\\Users\\Name\\file.xlsx’ เสมอ ไม่สามารถใช้ relative path ได้
File.Contents ออกแบบมาสำหรับไฟล์ local เท่านั้น หากต้องอ่านจากเนตเวิร์ก (SharePoint, OneDrive) ให้ใช้ SharePoint.Contents หรือ Web.Contents แทน
File.Contents อ่านไฟล์เป็น binary data เท่านั้น ส่วน Excel.Workbook ใช้ประมวลผล binary data เพื่อแปลงเป็นตาราง ต้องใช้ File.Contents ก่อนจึงใช้ Excel.Workbook ได้
File.Contents เองไม่มีพารามิเตอร์ encoding แต่เมื่อแปลง binary เป็น text ก็ใช้ Text.FromBinary(data, TextEncoding.Utf8) ระบุได้
File.Contents(path) ใช้สำหรับอ่านข้อมูล binary ของไฟล์ที่ระบุตามพาธ (absolute path) เพื่อประมวลผลข้อมูลจากไฟล์ต่างๆ เช่น Excel, CSV, JSON, XML, เป็นต้น
ตัวฟังก์ชันนี้ส่งคืนข้อมูลในรูปแบบ binary ซึ่งมักต้องแปลงเป็นรูปแบบอื่น (Text, Table, JSON) ตามความต้องการของคุณ ทำให้สามารถทำงานกับไฟล์ที่มีรูปแบบต่างๆ ได้
ส่วนตัวผมชอบใช้ File.Contents ร่วมกับ Csv.Document หรือ Excel.Workbook เพื่อให้ได้ข้อมูลสำเร็จรูปที่พร้อมใช้ได้เลย 😎