บทนำ
การทำงานกับไฟล์ Excel บน Power Automate เป็นเรื่องง่ายมากเมื่อใช้ Excel Connector แต่นั่นคือกรณีที่ไฟล์ของคุณเล็กและข้อมูลไม่ซับซ้อน แต่ถ้าไฟล์มีขนาดใหญ่และข้อมูลเยอะ คุณอาจพบปัญหา เช่น ความล่าช้า หรือการใช้ ‘Apply to Each’ loops ที่ยุ่งยากและกินเวลา
วันนี้ผมจะมาแนะนำวิธีที่เร็วกว่าและมีประสิทธิภาพยิ่งขึ้น นั่นคือการใช้ Microsoft Graph API ซึ่งจะช่วยให้คุณจัดการไฟล์ Excel ได้ทั้งการอ่านและการเขียนข้อมูลอย่างลื่นไหล
Microsoft Graph คืออะไร?
Microsoft Graph คือ API ที่ทรงพลังซึ่งเชื่อมโยงบริการต่างๆ ของ Microsoft เข้าไว้ด้วยกัน เช่น Microsoft 365, Windows และ Azure ช่วยให้คุณเข้าถึงข้อมูลสำคัญได้ในแบบรวมศูนย์ เช่น อีเมล ไฟล์ ผู้ใช้งาน และข้อมูลเชิงวิเคราะห์
ไม่เพียงแค่ช่วยให้การทำงานของระบบต่าง ๆ เป็นไปอย่างราบรื่น แต่ Microsoft Graph ยังเปิดโอกาสให้คุณสามารถเข้าถึงและจัดการข้อมูลเหล่านี้ผ่านโค้ดหรือ Flow ที่คุณออกแบบเอง
Microsoft Graph กับ Power Automate
ใน Power Automate คุณสามารถใช้ Microsoft Graph API ผ่าน Action อย่าง ‘Send an HTTP request’ ที่อยู่ใน Office 365 Users Connector เพื่อทำงานกับไฟล์ Excel
Quick Suggest
หากสนใจเรียนรู้เพิ่มเติม ขอแนะนำบทความ
วิธีนี้ใช้ได้กับไฟล์ Excel ทั้งบน OneDrive และ SharePoint Document Library ต่างจากบางวิธีที่จำกัดการใช้งานแค่ที่เดียว สะดวกครบจบในวิธีเดียว!
การใช้ Microsoft Graph จะช่วยให้คุณเข้าถึงข้อมูล Excel ได้โดยตรงและมีประสิทธิภาพยิ่งขึ้นเมื่อเทียบกับ Excel Connector ปกติ
การอ่านข้อมูลจาก Excel (Read Data)
โครงสร้างของ Flow
การอ่านข้อมูลจาก Excel ผ่าน Microsoft Graph มีขั้นตอนดังนี้:
1. เลือกไฟล์ Excel ด้วย Action ‘Get worksheets’
เริ่มต้นด้วยการระบุไฟล์ Excel ที่คุณต้องการ โดยเลือกตำแหน่งที่จัดเก็บ เช่น SharePoint หรือ OneDrive จากนั้นเลือกไฟล์และ Worksheet ที่ต้องการ
2. ตั้งค่าตัวแปร
สร้างตัวแปรเพื่อเก็บค่า Drive ID และ File ID ซี้งเป็นค่าที่จะช่วยให้คุณสามารถเรียกใช้ข้อมูลจาก Microsoft Graph ได้ง่ายขึ้น โดยใช้คำสั่ง Expression ในการดึงค่า:
actions('Get_worksheets')?['inputs/parameters/drive']
actions('Get_worksheets')?['inputs/parameters/file']
3. ใช้ HTTP Request เพื่อดึงข้อมูลจาก Excel
ใช้ Action ‘Send an HTTP request’ เพื่อดึงข้อมูลจาก Excel ในช่วงที่คุณต้องการ
Method: GET
URI:
https://graph.microsoft.com/v1.0/me/drives/@{variables('varDriveId')}/items/@{variables('varFileId')}/workbook/worksheets/Page1/range(address='A1:I10')?$select=text
แทน Page1 ด้วยชื่อ Worksheet
แทน A1:I10 ด้วยช่วงเซลล์ที่ต้องการ
Microsoft Graph จะส่งคืนข้อมูล Excel ในรูปแบบ Nested Array ซึ่งข้อมูลจะถูกจัดเก็บในโครงสร้างซ้อนกัน
ในกรณีที่ต้องการใช้งานข้อมูลนี้ใน Power Automate คุณสามารถใช้คำสั่ง ‘Select’ เพื่อแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสมสำหรับการประมวลผลขั้นต่อไปได้
4. จัดรูปแบบข้อมูลด้วย Action ‘Select’
การแปลงข้อมูลที่ได้จาก Microsoft Graph ให้ใช้งานง่ายขึ้น วิธีที่ง่ายที่สุดคือการใช้คำสั่ง ‘Select’ ใน Power Automate และกำหนดค่าที่ต้องการให้ตรงกับชื่อหรือรูปแบบที่คุณต้องการ
From: body('Send_an_HTTP_request')?['text']
item()[0]
แทนที่ ‘0’ ด้วยตำแหน่งของคอลัมน์ในไฟล์ Excel ของคุณ โดยเริ่มนับจาก 0 ทางซ้ายไปขวา
5. ผลลัพธ์การอ่านข้อมูล
เมื่อรัน Flow คุณจะได้ข้อมูลที่จัดเรียงมาในรูปแบบพร้อมใช้งาน
การเขียนข้อมูลลง Excel (Write Data)
Flow สำหรับเขียนข้อมูล
การเขียนข้อมูลทำได้ง่าย ๆ ด้วย Flow ที่คล้ายกับการอ่านข้อมูล เพียงแค่ปรับเปลี่ยนรายละเอียดเล็กน้อย
1. เตรียมข้อมูลในรูปแบบ Array
ข้อมูลที่ต้องการเขียนต้องอยู่ในรูปแบบ Array หากข้อมูลมาจากแหล่งอื่น เช่น SharePoint List คุณสามารถใช้ Action ‘Compose’ เพื่อจัดรูปแบบข้อมูลให้เหมาะสม
2. ใช้ HTTP Request เพื่อเขียนข้อมูลลง Excel
ใช้ Action ‘Send an HTTP request’ เพื่อเขียนข้อมูลไปยังช่วงที่ต้องการ
การสร้าง ‘Write flow’ ทำได้ง่ายมาก เพราะโครงสร้างคล้ายกับ ‘Read flow’ เลยครับ แค่ปรับคำสั่ง ‘Send an HTTP request’ นิดหน่อย ให้เหมาะกับการเขียนข้อมูลลง Excel ก็ใช้งานได้แล้ว
Method: PATCH
URI: https://graph.microsoft.com/v1.0/me/drives/@{variables('varDriveId')}/items/@{variables('varFileId')}/workbook/worksheets/Page1/range(address='A1:I3')
แทนที่ ‘Page1’ ด้วยชื่อของ Worksheet ที่คุณต้องการเขียนข้อมูลลงไป
และแทนที่ ‘A1:I3’ ด้วยช่วงเซลล์ที่ต้องการเขียนข้อมูล (จำนวนคอลัมน์และแถวควรตรงกับข้อมูลที่ต้องการใส่)
3. ผลลัพธ์การเขียนข้อมูล
เมื่อรัน Flow ข้อมูลจะถูกเขียนลงในไฟล์ Excel ทันที
ประสิทธิภาพและข้อจำกัด
ผลการทดสอบ
- การอ่านข้อมูล: 50,000 แถว 9 คอลัมน์ ใช้เวลาประมาณ 3 วินาที
- การเขียนข้อมูล: 32,500 แถว 9 คอลัมน์ ใช้เวลาประมาณ 10 วินาที
ข้อจำกัดที่พบ
การเขียนข้อมูล 50,000 แถวขึ้นไป อาจทำให้ Flow ล้มเหลว เนื่องจากข้อจำกัดด้านการประมวลผลของ Graph API หรือ Power Automate
แนะนำให้แบ่งข้อมูลออกเป็นชุดย่อยและประมวลผลทีละส่วน เพื่อให้ระบบทำงานได้อย่างราบรื่น
สรุป
การใช้ Microsoft Graph API ร่วมกับ Power Automate เป็นวิธีที่ช่วยเพิ่มความเร็วและประสิทธิภาพในการจัดการไฟล์ Excel โดยเฉพาะสำหรับไฟล์ขนาดใหญ่ที่ Excel Connector ปกติอาจไม่ตอบโจทย์
ถ้าคุณต้องการยกระดับการจัดการข้อมูลในองค์กรของคุณ Quick ERP พร้อมช่วยออกแบบและพัฒนาโซลูชันที่เหมาะกับความต้องการ ติดต่อเราวันนี้เพื่อเริ่มต้นเปลี่ยนแปลงกระบวนการทำงานของคุณให้เร็วและมีประสิทธิภาพกว่าเดิม!
แหล่งที่มา: PAWIT.PW
ก้าวเข้าสู่ Digital Business
ดูผลิตภัณฑ์ที่เกี่ยวข้องได้ที่นี่