---
title: SharePoint.Files – ดึงข้อมูลไฟล์จาก SharePoint
url: https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-files/
type: function-explainer
program: Power Query
syntax: "SharePoint.Files(url as text, optional options as nullable record) as table"
date: 2025-12-12
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 4
  usefulness: 7
---

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

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

## คำอธิบาย

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

## Syntax

```excel
SharePoint.Files(url as text, optional options as nullable record) as table
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| url | Yes | text |  | URL ของไซต์ SharePoint ที่ต้องการดึงข้อมูลไฟล์ เช่น https://yourcompany.sharepoint.com/sites/ProjectName |
| options | No | record (nullable) | null | ตัวเลือกเพิ่มเติมสำหรับการกำหนดค่า ได้แก่ ApiVersion (ระบุเวอร์ชัน API: 14, 15, หรือ "Auto") |

## ตัวอย่าง

### 1. ดึงไฟล์จากไซต์ SharePoint (พื้นฐาน)

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

**ผลลัพธ์:** `ตารางแสดงไฟล์และโฟลเดอร์ทั้งหมดจากไซต์ SharePoint รวม Columns เช่น Name, Date accessed, Date modified, Size และ Content`

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

### 2. กรองเฉพาะไฟล์ Excel

```excel
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 เท่านั้น`

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

### 3. ดึงไฟล์ที่แก้ไขเมื่อเร็วๆ นี้

```excel
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 วันที่ผ่านมา`

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

### 4. ดึงไฟล์พร้อมระบุเวอร์ชัน API

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

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

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

## หมายเหตุเพิ่มเติม

- ใช้ Table.SelectRows เพื่อกรองไฟล์ตามชนิด (Excel, PDF, Word) หรือตามวันที่แก้ไข ทำให้ได้ข้อมูลที่ต้องการเท่านั้นและประมวลผลได้เร็วขึ้น

- ส่วนตัวผมชอบใช้ SharePoint.Files เพื่อดึงข้อมูลไฟล์ แล้ว Combine กับ File.Contents หรือ Excel.Workbook เพื่อดึงข้อมูลภายในไฟล์ต่อไป ทำให้ได้ Data Pipeline แบบเต็มรูป

- ถ้า SharePoint URL ผิดหรือสิทธิ์ไม่ถูกต้อง จะได้ Error ช่วยเช็ค URL ให้ถูกต้องและ Account ต้องมีสิทธิ์อ่านไซต์

## คำถามที่พบบ่อย

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

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

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

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

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

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: SharePoint.Files](https://learn.microsoft.com/en-us/powerquery-m/sharepoint-files) _(official)_
- [Power Query M Function Reference](https://learn.microsoft.com/en-us/powerquery-m/) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-files/](https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-files/)_
