Thep Excel

File.Contentsอ่านข้อมูลจากไฟล์

File.Contents ใช้อ่านข้อมูล binary ของไฟล์จากพาธที่ระบุ เพื่อนำเข้าข้อมูลจากระบบไฟล์ลงในโปรแกรม

fx
= File.Contents(path, [options]) as binary

ความนิยม7/10
ความยาก2/10
ประโยชน์7/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
path text พาธไฟล์ที่ต้องการอ่าน ต้องเป็น absolute path เช่น ‘C:\\Users\\Name\\Data.xlsx’
[options]ไม่บังคับ nullable record null ตัวเลือกเพิ่มเติม (สำหรับการใช้งานภายในเท่านั้น)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

File.Contents(path) ใช้สำหรับอ่านข้อมูล binary ของไฟล์ที่ระบุตามพาธ (absolute path) เพื่อประมวลผลข้อมูลจากไฟล์ต่างๆ เช่น Excel, CSV, JSON, XML, เป็นต้น

ตัวฟังก์ชันนี้ส่งคืนข้อมูลในรูปแบบ binary ซึ่งมักต้องแปลงเป็นรูปแบบอื่น (Text, Table, JSON) ตามความต้องการของคุณ ทำให้สามารถทำงานกับไฟล์ที่มีรูปแบบต่างๆ ได้

ส่วนตัวผมชอบใช้ File.Contents ร่วมกับ Csv.Document หรือ Excel.Workbook เพื่อให้ได้ข้อมูลสำเร็จรูปที่พร้อมใช้ได้เลย 😎

Examples

อ่านไฟล์ Excel พื้นฐานlet FilePath = "C:\\Users\\John\\Desktop\\Sales.xlsx", FileData = File.Contents(FilePath), ExcelFile = Excel.Workbook(FileData) in ExcelFile

ใช้ File.Contents อ่านไฟล์ Excel แล้ว Excel.Workbook จะแปลงเป็นตารางที่อ่านได้

fx
= let
FilePath = "C:\\Users\\John\\Desktop\\Sales.xlsx",
FileData = File.Contents(FilePath),
ExcelFile = Excel.Workbook(FileData)
in
ExcelFile

ผลลัพธ์ไฟล์ Excel ที่แปลงเป็น binary data พร้อมสำหรับการประมวลผลเพิ่มเติม
อ่านไฟล์ CSV พร้อมแปลงเป็นตารางlet FilePath = "C:\\Data\\Employees.csv", FileData = File.Contents(FilePath), CSVContent = Csv.Document(FileData), Headers = Table.PromoteHeaders(CSVContent) in…

File.Contents อ่านไฟล์ CSV เป็น binary จากนั้น Csv.Document แปลงเป็นตาราง และ PromoteHeaders ยกแถวแรกขึ้นมาเป็นชื่อคอลัมน์

fx
= let
FilePath = "C:\\Data\\Employees.csv",
FileData = File.Contents(FilePath),
CSVContent = Csv.Document(FileData),
Headers = Table.PromoteHeaders(CSVContent)
in
Headers

ผลลัพธ์ตารางข้อมูล CSV พร้อมใช้งาน โดยแถวแรกเป็น headers
อ่านไฟล์ JSON และแปลงเป็นตารางlet FilePath = "C:\\Data\\config.json", FileData = File.Contents(FilePath), TextData = Text.FromBinary(FileData, TextEncoding.Utf8), JSONData = Json.Document(Te…

ต้องแปลง binary เป็น text ก่อนใช้ Json.Document เพื่อให้ JSON.Document อ่านได้

fx
= 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
ใช้กับ Folder.Contents เพื่ออ่านไฟล์หลายแฟ้มlet FolderPath = "C:\\Data\\Reports", FolderFiles = Folder.Contents(FolderPath), ExcelFiles = Table.SelectRows(FolderFiles, each Text.EndsWith([Name], ".xlsx"))…

รวม Folder.Contents และ File.Contents เพื่ออ่านไฟล์ Excel ทั้งหมดจากโฟลเดอร์ จากนั้นเพิ่มคอลัมน์ใหม่ประกอบด้วยข้อมูลของแต่ละไฟล์

fx
= 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 ทั้งหมด

FAQs

File.Contents ต้องใช้ absolute path ใช่ไหม?+

ใช่ครับ ต้องเป็น absolute path เช่น 'C:\\Users\\Name\\file.xlsx' เสมอ ไม่สามารถใช้ relative path ได้

หากอ่านไฟล์จากแหล่งที่ไม่ใช่ local drive ได้หรือไม่?+

File.Contents ออกแบบมาสำหรับไฟล์ local เท่านั้น หากต้องอ่านจากเนตเวิร์ก (SharePoint, OneDrive) ให้ใช้ SharePoint.Contents หรือ Web.Contents แทน

ส่วนต่างระหว่าง File.Contents กับ Excel.Workbook คืออะไร?+

File.Contents อ่านไฟล์เป็น binary data เท่านั้น ส่วน Excel.Workbook ใช้ประมวลผล binary data เพื่อแปลงเป็นตาราง ต้องใช้ File.Contents ก่อนจึงใช้ Excel.Workbook ได้

จะเลือกได้ว่าจะโหลดอักขระ (encoding) ไหนหรือไม่?+

File.Contents เองไม่มีพารามิเตอร์ encoding แต่เมื่อแปลง binary เป็น text ก็ใช้ Text.FromBinary(data, TextEncoding.Utf8) ระบุได้

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ File.Contents จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้File.ContentsAccessing data functions
Accessing data functions (5)
Csv.Document

Csv.Document แปลงข้อมูลรูปแบบ CSV (Comma-Separated Values) ให้เป็นตารางข้อมูล (table) ใน Power Query โดยรองรับการกำหนดตัวแบ่งข้อมูล (delimiter), รหัสภาษา (encoding) และโครงสร้างคอลัมน์ (column structure) แบบต่างๆ ได้ตามความต้องการ function นี้สามารถแยกวิเคราะห์ทั้งข้อมูลแบบ binary content ที่ได้จาก File.Contents และข้อความแบบ text string ที่ได้จาก Web.Contents พร้อมจัดการข้อความที่ครอบด้วย quote ตามมาตรฐานสากล CSV standard เหมาะสมสำหรับการนำเข้าไฟล์ CSV จากระบบไฟล์ในเครื่อง (local), ที่อยู่เว็บไซต์ (URL) หรือการตอบกลับจาก API (API response) ที่มีตัวแบ่งข้อมูลแบบกำหนดเอง (custom delimiter), เนื้อหาภาษาต่างประเทศ หรือโครงสร้างพิเศษที่ต้องการการควบคุมเฉพาะ คืนค่าออกมาเป็นตารางที่ทุกคอลัมน์มีประเภทข้อมูลเป็นข้อความ (text type) ควรใช้ร่วมกับ Table.PromoteHeaders เพื่อยกแถวแรกขึ้นเป็นหัวตาราง และ Table.TransformColumnTypes เพื่อแปลงประเภทข้อมูลให้เหมาะสมกับการใช้งาน

Excel.Workbook

Excel.Workbook อ่าน binary content ของไฟล์ Excel แล้วคืนค่าเป็น table ที่แต่ละ row แทนด้วย worksheet, named range หรือ Excel table โดยมี columns คือ Item (ชื่อ), Kind (ประเภท), Name (ชื่อเต็ม), Data (nested table ของข้อมูลจริง), และ Hidden (boolean) รองรับ useHeaders และ delayTypes เป็น parameters แต่ Microsoft แนะนำให้ใช้ Table.PromoteHeaders แทนเพื่อหลีกเลี่ยงปัญหา culture conversion นอกจากนี้ยังมี InferSheetDimensions option สำหรับแก้ปัญหา metadata ที่ผิดพลาด ใช้ร่วมกับ File.Contents หรือ Web.Contents สำหรับโหลดไฟล์

Folder.Contents

Folder.Contents เป็น function สำหรับดึงรายการไฟล์และโฟลเดอร์ทั้งหมดที่อยู่ใน folder path ที่กำหนดไว้ โดยจะคืนค่าเป็น table ที่มีข้อมูล metadata ครบถ้วน เช่น ชื่อไฟล์ วันที่สร้างและแก้ไข ขนาดไฟล์ และ binary content link สำหรับเข้าถึงเนื้อหาภายในไฟล์ เหมาะสำหรับงานที่ต้องการ import ข้อมูลจากหลายไฟล์พร้อมกันในโฟลเดอร์เดียว หรือการวิเคราะห์โครงสร้างไฟล์และคุณสมบัติต่างๆ ก่อนตัดสินใจนำเข้าข้อมูล

Folder.Files

Folder.Files ใช้สำหรับอ่านรายชื่อไฟล์ทั้งหมดในโฟลเดอร์ที่กำหนด รวมถึงโฟลเดอร์ย่อยด้วย คืนค่าเป็น table ที่มีข้อมูลไฟล์เช่น ชื่อ วันที่สร้าง ขนาด และลิงก์เข้าถึงไฟล์

Json.Document

Json.Document ใช้สำหรับแปลง JSON text หรือ binary data ให้เป็น Power Query record ทำให้คุณสามารถเข้าถึง field แต่ละตัวได้อย่างง่ายดาย

Binary functions (1)
Binary.ToText

Binary.ToText แปลงข้อมูลไบนารี่เป็นข้อความโดยระบุวิธีการเข้ารหัส ใช้ได้ทั้ง Base64 และ Hex

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่