Libreoffice Macro by Python : พื้นฐาน

พื้นฐาน
ก่อนอื่นต้องเข้าใจก่อนว่า เราสามารถเชื่อมต่อ Libreoffice กับโปรแกรมอื่นๆ ต้องมี Bridge เพราะ Libreoffice ถูกเขียนด้วย Java (JRE) 

Python จะมี Python-UNO Bridge หรือ PyUNO เป็นหลัก โดยมันฝังมากับ Libreoffice อยู่แล้ว

เริ่มต้นการเขียน
Tool>> Macro >> Python >> 
เมื่อเปิด Office Macro มันจะมีตัวอย่าง แต่ตัวอย่างจะไม่สามารถแก้ไขอะไรได้ Run ได้อย่างเดียว ยังทำอะไรไม่ได้

APSO คืออะไร
Alterantive Python Script Organizer มันคือการเขียน Python Script เพื่อใช้งาน Macro ซึ่งคุณต้อง Download แล้วเข้าไปที่ Tools >>Extension >> add >> Browse ไปที่ไฟล์ ที่ดาวน์โหลดมา

เสร็จแล้ว ให้ Check Update อีกครั้ง

คราวนี้เรากลับมาที่เดิม แต่เราจะต้องจำ PATH Python ของเราให้ได้ มันจะไปเรียก Python ของโปรแกรม (ไม่ใช่ที่เราลง Python ไว้) โดยมันจะอยู่คนละที่กับ Macro ของ Libreoffice 

เรากลับมาคราวนี้เราจะสามารถ Create Edit มันได้แล้ว

เริ่มต้นอีกครั้ง
Create>> Module >> ตั้งชื่อ 

ตอนนี้จะเกิดไฟล์ชื่อตามที่เราตั้ง เราสามารถเอาไฟล์.py ตัวนี้ไปเปิดใน IDE อื่นๆ ได้เลย

Basic 
1. การเพิ่มค่า
desktop = xcripcontext.getDesktop()
model = desktop.getCurrentComponent()
sheet = model.CurrentController.ActiveSheet()
range = sheet.getCellRangeByName("Ä1:A3")

2. การหาค่า Sum
sum = 0 
for row in range.Rows:
    sum == row.getCellByPosition(0,0).Value

3. ใส่ค่า
sheet.getCellRangeByName("B3").Value = sum

การใช้ Msgbox
from apso_utils import msgbox
msgbox ("done")

วิธีการรัน ก็กดเข้าไปเรียก Python Shell แล้วรันไฟล์ดังกล่าวก็ได้เลย

การใช้เวลา
import datetime




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

KoolMocyc : Forza 350 สเปกต่างๆ และการแก้ไข

Stable Diffusion 101 : Extension : AnimateDiff

KoolMocyc : Forza 350 : ปัญหาประจำตัว