Thep Excel

SharePoint.Filesดึงข้อมูลไฟล์จาก SharePoint

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

fx
=SharePoint.Files(url, [options]) as table

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

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
url text URL ของไซต์ SharePoint ที่ต้องการดึงข้อมูลไฟล์ เช่น https://yourcompany.sharepoint.com/sites/ProjectName
[options]ไม่บังคับ record (nullable) null ตัวเลือกเพิ่มเติมสำหรับการกำหนดค่า ได้แก่ ApiVersion (ระบุเวอร์ชัน API: 14, 15, หรือ “Auto”)

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

Additional Notes

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

ที่เจ๋งคือมันดึงข้อมูลแบบ Recursive ได้ เลยไม่ต้องเขียน Loop เองเพื่อไปจัดกับโฟลเดอร์ซ้อนลึก แถมยังให้ลิงก์เข้าถึงไฟล์ได้เลยภายในผลลัพธ์

ส่วนตัวผมชอบใช้ฟังก์ชันนี้คู่กับ Table.SelectRows เพื่อกรองไฟล์ที่ต้องการเท่านั้น เช่นกรองเฉพาะไฟล์ Excel หรือไฟล์ที่สร้างขึ้นในวันนี้ ทำให้ประมวลผลได้เร็วขึ้นมาก 😎

Examples

ดึงไฟล์จากไซต์ SharePoint (พื้นฐาน)let SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject", Files = SharePoint.Files(SharePointURL) in Files

สั่งให้ SharePoint.Files ดึงข้อมูลไฟล์จากไซต์ SharePoint โดยจะคืนตารางที่มีเอกสาร, โฟลเดอร์, วันที่แก้ไข ขนาดไฟล์ และอื่นๆ ทั้งหมด

fx
let
SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject",
Files = SharePoint.Files(SharePointURL)
in
Files

ผลลัพธ์ตารางแสดงไฟล์และโฟลเดอร์ทั้งหมดจากไซต์ SharePoint รวม Columns เช่น Name, Date accessed, Date modified, Size และ Content
กรองเฉพาะไฟล์ Excellet SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject", AllFiles = SharePoint.Files(SharePointURL), ExcelOnly = Table.SelectRows(AllFiles, eac…

ใช้ SharePoint.Files ดึงไฟล์ทั้งหมด แล้วใช้ Table.SelectRows กับ Text.EndsWith เพื่อกรองเฉพาะไฟล์ที่มีนามสกุล Excel ส่วนตัวผมชอบวิธีนี้มากเพราะเห็นได้ชัดว่ากรองอะไร 💡

fx
let
SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject",
AllFiles = SharePoint.Files(SharePointURL),
ExcelOnly = Table.SelectRows(AllFiles, each Text.EndsWith([Name], ".xlsx") or Text.EndsWith([Name], ".xls"))
in
ExcelOnly

ผลลัพธ์ตารางแสดงเฉพาะไฟล์ Excel ที่นามสกุลเป็น .xlsx หรือ .xls เท่านั้น
ดึงไฟล์ที่แก้ไขเมื่อเร็วๆ นี้let SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject", AllFiles = SharePoint.Files(SharePointURL), RecentFiles = Table.SelectRows( AllFiles,…

ดึงไฟล์ทั้งหมดจากไซต์ SharePoint แล้วกรองเฉพาะไฟล์ที่ [Date modified] เกิน 7 วันที่ผ่านมา โดยใช้ Date.AddDays เพื่อคำนวณวันที่ ส่วนตัวผมชอบใช้แบบนี้ตอนต้องการตรวจสอบไฟล์ที่มีการอัปเดตเร็วๆ นี้ 😎

fx
let
SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject",
AllFiles = SharePoint.Files(SharePointURL),
RecentFiles = Table.SelectRows(
AllFiles,
each [Date modified] >= Date.From(Date.AddDays(DateTime.FixedLocalNow(), -7))
)
in
RecentFiles

ผลลัพธ์ตารางแสดงเฉพาะไฟล์ที่แก้ไขในช่วง 7 วันที่ผ่านมา
ดึงไฟล์พร้อมระบุเวอร์ชัน APIlet SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject", Options = [ApiVersion = "Auto"], Files = SharePoint.Files(SharePointURL, Options) in F…

ใช้ Options parameter เพื่อระบุว่าให้ใช้ API version "Auto" ซึ่งระบบจะตรวจสอบเวอร์ชัน SharePoint และเลือกเองโดยอัตโนมัติ เจ๋งตรงที่ไม่ต้องมานั่งเอามือเลือกเวอร์ชัน API เอง โดยเฉพาะตอนทำงานกับไซต์ SharePoint หลายแห่ง 💡

fx
let
SharePointURL = "https://yourcompany.sharepoint.com/sites/MyProject",
Options = [ApiVersion = "Auto"],
Files = SharePoint.Files(SharePointURL, Options)
in
Files

ผลลัพธ์ตารางไฟล์จาก SharePoint โดยระบบจะเลือก API version ที่เหมาะสมโดยอัตโนมัติ

FAQs

SharePoint.Files จะดึงเฉพาะไฟล์หรือโฟลเดอร์ด้วย?+

ดึงทั้งไฟล์และโฟลเดอร์ครับ ผลลัพธ์จะรวมทั้งสองอย่างอยู่ในตารางเดียวกัน ถ้าต้องการแยกออก ให้ใช้ Table.SelectRows เพื่อกรองตามคอลัมน์ Attributes หรือตรวจสอบสิ่งอื่นๆ ที่บ่งบอกว่าเป็นไฟล์หรือโฟลเดอร์

ถ้า SharePoint เป็นภาษาไทยหรือภาษาอื่น ต้องทำอะไรเพิ่มเติมมั้ย?+

ต้องระบุ ApiVersion ให้เป็น 15 ขึ้นไป ส่วนตัวผมแนะนำให้ใช้ "Auto" เสมอครับ เพราะมันจะตรวจสอบและเลือกเอง แต่ถ้าระบบ Auto ไม่ได้ลองเปลี่ยนเป็น 15 ดูนะครับ

SharePoint.Files ดึงข้อมูลจากโฟลเดอร์ย่อยด้วยหรือเปล่า?+

ใช่ครับ ดึงแบบ Recursive อัตโนมัติ ถ้าไซต์มีโฟลเดอร์ซ้อนลึก มันจะไปหาหมดให้เองเลย ไม่ต้องสร้าง Loop เอง 😎

Resources & Related

Comments

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