File.Contents ใช้อ่านข้อมูล binary ของไฟล์จากพาธที่ระบุ เพื่อนำเข้าข้อมูลจากระบบไฟล์ลงในโปรแกรม
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| path | text | พาธไฟล์ที่ต้องการอ่าน ต้องเป็น absolute path เช่น ‘C:\\Users\\Name\\Data.xlsx’ | |
| [options]ไม่บังคับ | nullable record | null | ตัวเลือกเพิ่มเติม (สำหรับการใช้งานภายในเท่านั้น) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
File.Contents(path) ใช้สำหรับอ่านข้อมูล binary ของไฟล์ที่ระบุตามพาธ (absolute path) เพื่อประมวลผลข้อมูลจากไฟล์ต่างๆ เช่น Excel, CSV, JSON, XML, เป็นต้น
ตัวฟังก์ชันนี้ส่งคืนข้อมูลในรูปแบบ binary ซึ่งมักต้องแปลงเป็นรูปแบบอื่น (Text, Table, JSON) ตามความต้องการของคุณ ทำให้สามารถทำงานกับไฟล์ที่มีรูปแบบต่างๆ ได้
ส่วนตัวผมชอบใช้ File.Contents ร่วมกับ Csv.Document หรือ Excel.Workbook เพื่อให้ได้ข้อมูลสำเร็จรูปที่พร้อมใช้ได้เลย 😎
ใช้ File.Contents อ่านไฟล์ Excel แล้ว Excel.Workbook จะแปลงเป็นตารางที่อ่านได้
File.Contents อ่านไฟล์ CSV เป็น binary จากนั้น Csv.Document แปลงเป็นตาราง และ PromoteHeaders ยกแถวแรกขึ้นมาเป็นชื่อคอลัมน์
ต้องแปลง binary เป็น text ก่อนใช้ Json.Document เพื่อให้ JSON.Document อ่านได้
รวม Folder.Contents และ File.Contents เพื่ออ่านไฟล์ 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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
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 อ่าน 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 เป็น function สำหรับดึงรายการไฟล์และโฟลเดอร์ทั้งหมดที่อยู่ใน folder path ที่กำหนดไว้ โดยจะคืนค่าเป็น table ที่มีข้อมูล metadata ครบถ้วน เช่น ชื่อไฟล์ วันที่สร้างและแก้ไข ขนาดไฟล์ และ binary content link สำหรับเข้าถึงเนื้อหาภายในไฟล์ เหมาะสำหรับงานที่ต้องการ import ข้อมูลจากหลายไฟล์พร้อมกันในโฟลเดอร์เดียว หรือการวิเคราะห์โครงสร้างไฟล์และคุณสมบัติต่างๆ ก่อนตัดสินใจนำเข้าข้อมูล
Folder.Files ใช้สำหรับอ่านรายชื่อไฟล์ทั้งหมดในโฟลเดอร์ที่กำหนด รวมถึงโฟลเดอร์ย่อยด้วย คืนค่าเป็น table ที่มีข้อมูลไฟล์เช่น ชื่อ วันที่สร้าง ขนาด และลิงก์เข้าถึงไฟล์
Json.Document ใช้สำหรับแปลง JSON text หรือ binary data ให้เป็น Power Query record ทำให้คุณสามารถเข้าถึง field แต่ละตัวได้อย่างง่ายดาย
Binary.ToText แปลงข้อมูลไบนารี่เป็นข้อความโดยระบุวิธีการเข้ารหัส ใช้ได้ทั้ง Base64 และ Hex
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่