อ่าน Excel ด้วย Power Automate Desktop

by

Power Automate Desktop เป็นซอฟท์แวร์ RPA (Robotic Process Automation) แบบ Low code/ No Code ที่ใช้ในการทำงานอัตโนมัติต่างๆ ผ่าน User Interface บนเครื่องคอมพิวเตอร์

สามารถดาวน์โหลดใช้งานได้ฟรี

สร้าง Desktop Flow

เปิดโปรแกรม Power Automate Desktop แล้วกด New flow

ตั้งชื่อ Flow name แล้วกด Create

ตั้งชื่อ Flow name แล้วกด Save

สร้าง Excel File และข้อมูล

เปิดโปรแกรม Excel แล้วใส่ข้อมูลตามด้านล่าง แล้ว save ไฟล์ไว้ที่ Desktop

ตัวอย่าง file path ที่ save Excel ไว้:

C:\Users\User\Desktop\Excel Automation (Launch, Read, Close).xlsx

ถ้าไม่อยากพิมพ์ข้อมูลเองให้เมื่อยมือ สามารถไปดาวน์โหลดไฟล์ที่นี่ได้

ข้อมูลในไฟล์ Excel ที่จะใช้วันนี้

การใส่ Actions ใน Workspace

ที่ Action Pane ทางซ้ายมือให้ค้นหา actions ที่ต้องการสั่งให้โรบอททำงาน เช่น “Launch Excel” แล้วลากมาวางที่ workspace หรือจะ double click ที่ action นั้นๆ เลยก็ได้

Actions Pane และ Workspace เป็นองค์ประกอบของ Flow Designer
ค้นหา Actions ที่ search bar ด้านบนของ Actions Pane ได้

Launch Excel

parameter ของ “Launch Excel” จะมี 2 แบบ คือ

  1. with a blank document เป็นการเปิดไฟล์ Excel ขึ้นมาใหม่
  2. and open the following document เป็นการเปิดไฟล์ Excel ที่อยู่ในคอมของเรา
แบบที่ 1 with a blank document
แบบที่ 2 and open the following document (จะมีให้ใส่ Document Path ด้วย)

ที่ Variables produced ของแต่ละ action จะแสดงว่า action นั้นมีการสร้างตัวแปรอะไรขึ้นมาบ้าง

สำหรับ action “Launch Excel” นี้ จะมีการสร้างตัวแปร ExcelInstance ขึ้นมาให้อัตโนมัติ (เราสามารถเปลี่ยนชื่อตัวแปรนี้ได้โดยการคลิกที่ชื่อตัวแปรแล้วพิมพ์ชื่อที่ต้องการลงไปได้เลย)

ตั้งค่าตามรูปนี้ เปลี่ยน File path เป็นที่ที่เรา save Excel ไว้ แล้วกด Save

Read from Excel worksheet

parameter ของ “ExcelInstance” จะไปดึง data type ที่เป็น ExcelInstance ในโฟลว์ของเรามาใส่ไว้ที่ dropdown ให้เราเลือกว่าจะอ่านค่าจาก Excel ไฟล์ไหน (ในกรณีนี้จะมีค่าเดียวเพราะเราเปิด Excel แค่ไฟล์เดียว)

parameter “Retrieve” สามารถปรับค่าได้ 5 แบบ คือ

  1. The value of single cell คือ อ่านค่าจาก Excel cell เพียง cell เดียว
  2. Values from a range of cells คือ อ่านค่าจาก Excel cell หลายๆ cell
  3. Values from selection คือ อ่านค่าจาก cell ที่เลือกอยู่ (จะเป็น cell เดียว หรือหลาย cell ก็ได้)
  4. All available values from worksheet คือ อ่านค่าจาก Excel worksheet นั้นไปถึง cell สุดท้ายที่มีค่าอยู่
  5. Values of named cells คือ อ่านค่าจาก Name range ที่สร้างไว้ที่ Excel
เลือกรูปแบบการอ่านค่าใน Excel

ที่ Start column, End column สามารถใส่ตัวอักษรที่ใช้แทนลำดับของ Excel column หรือใส่ตัวเลขของ Excel column ก็ได้

ที่ Start row, End row สามารถใส่ตัวเลขของ Excel row ได้เลย

สำหรับ action “Read from Excel worksheet” นี้ จะมีการสร้างตัวแปร ExcelData ขึ้นมาให้อัตโนมัติ โดย data type ของตัวแปรนี้จะเป็น Text value/Numeric value หรือ Datatable ก็ขึ้นอยู่กับรูปแบบที่เราเลือกที่ Retreive และค่าที่อยู่ใน Excel cell

ตั้งค่าตามรูปนี้แล้วกด Save (ในที่นี้เขียนแบบ fix row ไปก่อน)

Write text to file

เราจะลองเอาค่าที่โรบอทอ่านได้ ไปเขียนใส่ notepad

ตัวอย่าง file path ที่ save Notepad ไว้:

C:\Users\User\Desktop\StrawHatCrew.txt

ที่ parameter “If file exists” จะมีให้เลือก 2 แบบ คือ

  1. Overwrite existing content เขียนทับข้อมูลเดิมในไฟล์
  2. Append content เขียนเพิ่มจากข้อมูลเดิม
ตั้งค่าตามรูปนี้ เปลี่ยน File Path เป็นที่ที่เราต้องการ save Notepad แล้วกด Save

Close Excel

parameter “Before Closing Excel” สามารถปรับค่าได้ 3 แบบ คือ

  1. Do not save document คือ ไม่ save Excel
  2. Save document คือ save Excel ไฟล์เดิม
  3. Save document as คือ save Excel ไฟล์ใหม่ (จะมีให้เลือก extension และ location ที่ต้องการ save)
เลือกว่าก่อนปิด Excel จะ save หรือไม่
ตั้งค่าตามนี้แล้ว save

Completed Flow

จะได้ Flow ที่มี 4 actions ตามภาพด้านล่าง กด Save แล้วกด Run

Completed Flow

Result 1

จะได้ข้อมูลทั้งหมดใน Excel ตั้งแต่ Column header และข้อมูล โดยมีสัญลักษณ์ comma คั่นระหว่าง column

ผลลัพธ์ที่ Notepad แบบที่มีทั้ง Column header และข้อมูล

ถ้าดูที่ Variable Pane ทางขวา แล้ว double click ที่ตัวแปร ExcelData จะเห็นข้อมูลที่เราสั่งให้โรบอทอ่านจาก Excel

Variable Pane

กรณีนี้เราไม่ได้บอกโรบอทว่าข้อมูลนี้มี Column header โรบอทก็จะตั้งชื่อ Column ให้เราเองเป็น Column1, Column2, Column3, …

ข้อมูลในตัวแปร ExcelData
ตั้งค่าที่ Advanced ของ action “Read from Excel worksheet”

กด Save แล้ว Run ใหม่

ผลลัพธ์ที่ Notepad แบบที่มีแค่ข้อมูล (ไม่มี Column header)

ถ้าข้อมูลใน Excel เพิ่มขึ้น/ลดลงจะสั่งให้อ่านยังไง?

ใช้วิธีหา First free row แล้วนำมาลบ 1 เพื่อบอก range ของ Excel

หลักการในการหา FirstFreeRow

Get first free column/row from Excel worksheet

ลาก action “Get first free column/row from Excel worksheet” มาไว้ก่อน “Read from Excel worksheet”

จะได้ Variables produced เป็น FirstFreeColumn และ FirstFreeRow กด Save

จะได้ค่าเป็นตัวเลขเก็บในตัวแปร

จากนั้นให้ double click ที่ action “Read from Excel worksheet” ที่ parameter “End row” ให้เลือกตัวแปร FirstFreeRow มาใส่ แล้วเขียน Expression ลบ 1

จาก Excel ด้านบน FirstFreeRow จะมีค่า 12 เมื่อเราเขียนใน Expression โปรแกรมจะคำนวณค่าเป็น 12 – 1 = 11

เมื่อข้อมูลในไฟล์ Excel มีการเปลี่ยนแปลงเพิ่ม/ลด ก็จะหาค่าของข้อมูลได้ยืดหยุ่นกว่าการใส่ตัวเลขลงไปตรงๆ

การเขียน Expression ใน Power Automate Desktop

Edited Flow

Edited Flow

ลองเพิ่มข้อมูลใน Excel แล้ว Run

เพิ่มข้อมูลไป 1 บรรทัด

Result 2

ผลลัพธ์ใน Notepad แบบที่มีแค่ข้อมูล (ไม่มี Column header) และเพิ่มข้อมูลไป 1 บรรทัด

ขอบคุณข้อมูลสำหรับ mock data จาก One Piece Wiki

สำหรับใครที่อยากดูโค้ด Power Automate Desktop ของบทความนี้ สามารถเข้าไป copy code ที่ github แล้วนำไปวางที่ Workspace ของ Power Automate Desktop ได้เลย แต่จะต้องไปปรับแก้เองนิดนึงนะ (ลองอ่านทบทวนบทความนี้อีกครั้งทำได้แน่นอน ❤️‍🔥)

คลิกที่บรรทัดแรกของโค้ด กด Ctrl+A, Ctrl+C, แล้วนำไปวางที่ Workspace Power Automate Desktop

หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ที่เพิ่งเริ่มศึกษา Power Automate Desktop ถ้าหากมีข้อสงสัยตรงไหนเกี่ยวกับบทความนี้ก็สามารถ comment ถามเข้ามาได้เลย

อย่าลืมกด like, share, subscribe สำหรับบทความดีๆ ต่อจากนี้ (กดปุ่ม subscribe แล้วจะได้ mail confirm subscription ให้ยืนยันอีกครั้งด้วยนะคะ)

จนกว่าจะได้พบกันอีกครั้ง Happy Automating!! 😁

Video

Did You Enjoy this Article?

Subscription to get new articles sent to your inbox each week for FREE

Question?

If you have any questions or feedback about this article please leave a message in the comments section below.


Comments

2 responses to “อ่าน Excel ด้วย Power Automate Desktop”

  1. Benjavan Damsaard Avatar
    Benjavan Damsaard

    รบกวนสอบถามหน่อยได้ไหมค่ะ คือพอดีเพิ่งเริ่มหัดใช้งาน power automate

    มีโจทย์ คือ อยากคัดลอกข้อมูลไฟล์ excel ที่1 บางคอลัม ไปยังไฟล์ excel 2 นะคะ ตอนนี้คิดปัญหาเรื่องการสร้างตัวแปรเก็บค่า กับการวนลูปรบกวนหน่อยนะคะ

    Like

    1. ลองดูเป็นแนวทางค่ะ https://youtu.be/YLt2SZSd71o?si=mxaPAJ3CCQaeDJ-K

      Like

Leave a reply to Benjavan Damsaard Cancel reply

Subscribe to get new articles sent to your inbox each week for FREE