เร่งสปีด Power Automate จัดการ Excel ด้วย Microsoft Graph

เร่งสปีด Power Automate จัดการ Excel ด้วย Microsoft Graph

Power Automate ทำงานช้าเพราะไฟล์ Excel ใหญ่? ค้นพบวิธีใช้ Microsoft Graph API อ่าน-เขียน 50,000 แถวใน 3 วินาที ลด Flow หน่วง ทำงานเร็วขึ้นแบบเห็นผล
Excel ช้า? Flow หน่วง? เร่งสปีดด้วย Microsoft Graph!

บทนำ

การทำงานกับไฟล์ 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

หากสนใจเรียนรู้เพิ่มเติม ขอแนะนำบทความ

Microsoft Graph กับ Power Automate

วิธีนี้ใช้ได้กับไฟล์ Excel ทั้งบน OneDrive และ SharePoint Document Library ต่างจากบางวิธีที่จำกัดการใช้งานแค่ที่เดียว สะดวกครบจบในวิธีเดียว!

การใช้ Microsoft Graph จะช่วยให้คุณเข้าถึงข้อมูล Excel ได้โดยตรงและมีประสิทธิภาพยิ่งขึ้นเมื่อเทียบกับ Excel Connector ปกติ

การอ่านข้อมูลจาก Excel (Read Data)

โครงสร้างของ Flow

การอ่านข้อมูลจาก Excel ผ่าน Microsoft Graph มีขั้นตอนดังนี้:

การอ่านข้อมูลจาก Excel (Read Data)
  • 1. เลือกไฟล์ Excel ด้วย Action ‘Get worksheets’

เริ่มต้นด้วยการระบุไฟล์ Excel ที่คุณต้องการ โดยเลือกตำแหน่งที่จัดเก็บ เช่น SharePoint หรือ OneDrive จากนั้นเลือกไฟล์และ Worksheet ที่ต้องการ

1. เลือกไฟล์ Excel ด้วย Action ‘Get worksheets’
  • 2. ตั้งค่าตัวแปร

สร้างตัวแปรเพื่อเก็บค่า Drive ID และ File ID ซี้งเป็นค่าที่จะช่วยให้คุณสามารถเรียกใช้ข้อมูลจาก Microsoft Graph ได้ง่ายขึ้น โดยใช้คำสั่ง Expression ในการดึงค่า:

				
					actions('Get_worksheets')?['inputs/parameters/drive']   
actions('Get_worksheets')?['inputs/parameters/file']   

				
			
2. ตั้งค่าตัวแปร
  • 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

แทน Page1 ด้วยชื่อ Worksheet

แทน A1:I10 ด้วยช่วงเซลล์ที่ต้องการ

แทน A1:I10 ด้วยช่วงเซลล์ที่ต้องการ
Microsoft Graph จะส่งคืนข้อมูล Excel ในรูปแบบ Nested Array ซึ่งข้อมูลจะถูกจัดเก็บในโครงสร้างซ้อนกัน

Microsoft Graph จะส่งคืนข้อมูล Excel ในรูปแบบ Nested Array ซึ่งข้อมูลจะถูกจัดเก็บในโครงสร้างซ้อนกัน

แทนที่ ‘0’ ด้วยตำแหน่งของคอลัมน์ในไฟล์ Excel ของคุณ โดยเริ่มนับจาก 0 ทางซ้ายไปขวา

ในกรณีที่ต้องการใช้งานข้อมูลนี้ใน Power Automate คุณสามารถใช้คำสั่ง ‘Select’ เพื่อแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสมสำหรับการประมวลผลขั้นต่อไปได้

  • 4. จัดรูปแบบข้อมูลด้วย Action ‘Select’

การแปลงข้อมูลที่ได้จาก Microsoft Graph ให้ใช้งานง่ายขึ้น วิธีที่ง่ายที่สุดคือการใช้คำสั่ง ‘Select’ ใน Power Automate และกำหนดค่าที่ต้องการให้ตรงกับชื่อหรือรูปแบบที่คุณต้องการ

				
					From: body('Send_an_HTTP_request')?['text'] 
item()[0]  
				
			

แทนที่ ‘0’ ด้วยตำแหน่งของคอลัมน์ในไฟล์ Excel ของคุณ โดยเริ่มนับจาก 0 ทางซ้ายไปขวา

นับจาก 0 ทางซ้ายไปขวา
แทนที่ ‘0’ ด้วยตำแหน่งของคอลัมน์
  • 5. ผลลัพธ์การอ่านข้อมูล

เมื่อรัน Flow คุณจะได้ข้อมูลที่จัดเรียงมาในรูปแบบพร้อมใช้งาน

5. ผลลัพธ์การอ่านข้อมูล

การเขียนข้อมูลลง Excel (Write Data)

Flow สำหรับเขียนข้อมูล

การเขียนข้อมูลทำได้ง่าย ๆ ด้วย Flow ที่คล้ายกับการอ่านข้อมูล เพียงแค่ปรับเปลี่ยนรายละเอียดเล็กน้อย

Flow สำหรับเขียนข้อมูล
  • 1. เตรียมข้อมูลในรูปแบบ Array

ข้อมูลที่ต้องการเขียนต้องอยู่ในรูปแบบ Array หากข้อมูลมาจากแหล่งอื่น เช่น SharePoint List คุณสามารถใช้ Action ‘Compose’ เพื่อจัดรูปแบบข้อมูลให้เหมาะสม

1. เตรียมข้อมูลในรูปแบบ Array
  • 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’ ด้วยช่วงเซลล์ที่ต้องการเขียนข้อมูล (จำนวนคอลัมน์และแถวควรตรงกับข้อมูลที่ต้องการใส่)

และแทนที่ ‘A1:I3’ ด้วยช่วงเซลล์ที่ต้องการเขียนข้อมูล (จำนวนคอลัมน์และแถวควรตรงกับข้อมูลที่ต้องการใส่)
  • 3. ผลลัพธ์การเขียนข้อมูล

เมื่อรัน Flow ข้อมูลจะถูกเขียนลงในไฟล์ Excel ทันที

เมื่อรัน Flow ข้อมูลจะถูกเขียนลงในไฟล์ Excel ทันที
3. ผลลัพธ์การเขียนข้อมูล

ประสิทธิภาพและข้อจำกัด

ผลการทดสอบ

  • การอ่านข้อมูล: 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

ดูผลิตภัณฑ์ที่เกี่ยวข้องได้ที่นี่

Table of Content
🔴Copilot มี… แต่ใช้ไม่เป็น!? กลายเป็นแค่ AI ไร้ค่า! ✨เปลี่ยน Copilot ให้เป็นตัวช่วยตัว ตัวจริง!