ການສ້າງສະຄຣິບ Python ດ້ວຍ ScriptForge

ຄວາມແຕກຕ່າງລະຫວ່າງ Basic ແລະ Python

ຫ້ອງສະໝຸດ ScriptForge ສາມາດໃຊ້ໄດ້ທັງໃນ Basic ແລະ Python. ບໍລິການ, ເມັດທອດ ແລະ ຄຸນສົມບັດສ່ວນໃຫຍ່ຈະເຮັດວຽກຄືກັນໃນທັງສອງພາສາການຂຽນໂປຣແກຣມ. ເຖິງຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກຄວາມແຕກຕ່າງໃນວິທີການເຮັດວຽກຂອງແຕ່ລະພາສາ, ຜູ້ໃຊ້ ScriptForge ຕ້ອງຮັບຮູ້ເຖິງລັກສະນະສະເພາະບາງຢ່າງຂອງຫ້ອງສະໝຸດເມື່ອໃຊ້ Python:

ໄອຄອນ ເຄັດລັບ

ເຂົ້າເບິ່ງ ຊ່ວຍເຫຼືອສະຄຣິບ Python ຂອງ LibreOfficeDev ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການຂຽນສະຄຣິບ Python ໂດຍໃຊ້ LibreOfficeDev.


ການແກ້ໄຂສະຄຣິບ Python ໃນ IDEs

ຄຳແນະນຳການພິມ (typing hints) ຂອງ Python - ເຊິ່ງກ່ຽວຂ້ອງກັບເມັດທອດສາທາລະນະ ແລະ ຄຸນສົມບັດຂອງບໍລິການ ScriptForge - ສາມາດເອົາໄດ້ຈາກ IDEs ທີ່ຮອງຮັບສິ່ງອຳນວຍຄວາມສະດວກດັ່ງກ່າວ. ໃນທາງກາຍະພາບ, ຂະນະທີ່ພວມແກ້ໄຂສະຄຣິບຂອງຜູ້ໃຊ້:

ໄອຄອນ ບັນທຶກ

ຄຳແນະນຳການພິມຈະຖືກສະແດງເມື່ອມີການແກ້ໄຂເມັດທອດ ແລະ ຄຸນສົມບັດດ້ວຍຕົວອັກສອນແບບ propercase.


ການລັນສະຄຣິບ Python ໃນ LibreOfficeDev

ຂຶ້ນກັບສິ່ງທີ່ທ່ານຕັ້ງໃຈຈະເຮັດ, ທ່ານອາດຈະເລືອກໜຶ່ງໃນວິທີການຕໍ່ໄປນີ້ເພື່ອລັນສະຄຣິບ Python ໃນ LibreOfficeDev:

ໄອຄອນ ເຄັດລັບ

ຖ້າທ່ານມີແຜນທີ່ຈະລັນສະຄຣິບຈາກພາຍໃນໂປຣເຊສຂອງ LibreOfficeDev, ແນະນຳໃຫ້ຕິດຕັ້ງ ສ່ວນຂະຫຍາຍ APSO (Alternative Script Organizer for Python). ເຖິງຢ່າງໃດກໍຕາມ, ເພື່ອພັດທະນາສະຄຣິບ Python ຈາກພາຍນອກ LibreOfficeDev, ທ່ານສາມາດເລືອກ Python IDE ທີ່ທ່ານຕ້ອງການໄດ້.


ການລັນສະຄຣິບຈາກພາຍໃນໂປຣເຊສຂອງ LibreOfficeDev

ການໃຊ້ສ່ວນຂະຫຍາຍ APSO

ວິທີທີ່ງ່າຍທີ່ສຸດໃນການເລີ່ມຕົ້ນການຂຽນສະຄຣິບ Python ໃນ LibreOfficeDev ແມ່ນການຕິດຕັ້ງສ່ວນຂະຫຍາຍ APSO. ຫຼັງຈາກຕິດຕັ້ງແລ້ວ, ໃຫ້ເປີດຄອມໂພເນນໃດໜຶ່ງຂອງ LibreOfficeDev ແລະ ໄປທີ່ Tools - Macros - Organize Python Scripts.

ໃນໜ້າຕ່າງຫຼັກຂອງ APSO ໃຫ້ໄປທີ່ Menu - Python Shell.

ໄອຄອນ ເຄັດລັບ

ອີກທາງເລືອກໜຶ່ງ ທ່ານສາມາດເປີດ APSO ໂດຍໃຊ້ຄີລັດເລີ່ມຕົ້ນ Alt + Shift + F11.


ຕອນນີ້ທ່ານສາມາດເລີ່ມພິມຄຳສັ່ງ Python ແລະ shell ຈະພິມຜົນໄດ້ຮັບທີ່ກົງກັນອອກມາ ຫຼັງຈາກທີ່ແຕ່ລະແຖວຂອງໂຄດຖືກປະຕິບັດງານ.

ເພື່ອເລີ່ມຕົ້ນການໃຊ້ຫ້ອງສະໝຸດ ScriptForge, ທ່ານຈຳເປັນຕ້ອງນຳເຂົ້າເມັດທອດ CreateScriptService ເຊິ່ງທ່ານຈະສາມາດເຂົ້າເຖິງບໍລິການຕ່າງໆທີ່ໃຫ້ໂດຍຫ້ອງສະໝຸດ. ຕົວຢ່າງດ້ານລຸ່ມນີ້ໃຊ້ບໍລິການ Basic ເພື່ອສະແດງກ່ອງຂໍ້ຄວາມ (message box).


    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
    bas.MsgBox("Hello!")
  

ເພື່ອລັນຕົວຢ່າງດ້ານເທິງ, ໃຫ້ປ້ອນແຕ່ລະແຖວລົງໃນ Python shell ເທື່ອລະແຖວ, ໂດຍການກົດປຸ່ມ Enter ຫຼັງຈາກທີ່ທ່ານພິມແຕ່ລະແຖວຂອງໂຄດສຳເລັດ.

ຕອນນີ້ທ່ານສາມາດເລີ່ມປະຕິບັດຄຳສັ່ງ Python ໂດຍໃຊ້ບໍລິການໃດໜຶ່ງຂອງ ScriptForge ໄດ້ແລ້ວ. ຕົວຢ່າງເຊັ່ນ: ສ່ວນຂອງໂຄດດ້ານລຸ່ມນີ້ໃຊ້ບໍລິການ UI ເພື່ອສ້າງເອກະສານ Writer ຫວ່າງເປົ່າ.


    ui = CreateScriptService("UI")
    doc = ui.CreateDocument("Writer")
  

ການສ້າງໄຟລ໌ສະຄຣິບ Python

ທ່ານສາມາດສ້າງໄຟລ໌ Python ຂອງຕົນເອງ ແລະ ແກ້ໄຂພວກມັນດ້ວຍຕົວແກ້ໄຂຂໍ້ຄວາມ (text editor) ທີ່ທ່ານຕ້ອງການ. ຫຼັງຈາກນັ້ນທ່ານສາມາດເອີ້ນໃຊ້ພວກມັນໄດ້ຈາກພາຍໃນຄອມໂພເນນໃດໜຶ່ງຂອງ LibreOfficeDev.

ຂັ້ນຕອນທຳອິດແມ່ນການລະບຸຕຳແໜ່ງທີ່ເກັບສະຄຣິບຂອງຜູ້ໃຊ້ຂອງທ່ານ. ສຳລັບເລື່ອງນັ້ນ, ໃຫ້ອ້າງອີງເຖິງໜ້າຊ່ວຍເຫຼືອ ການຈັດລະບຽບ ແລະ ຕຳແໜ່ງຂອງສະຄຣິບ Python.

ຕອນນີ້ທ່ານສາມາດສ້າງໄຟລ໌ຂໍ້ຄວາມພາຍໃນໂຟນເດີສະຄຣິບ Python ຂອງຜູ້ໃຊ້ຂອງທ່ານ, ຕົວຢ່າງເຊັ່ນ sf_test.py, ແລະ ເລີ່ມພິມສະຄຣິບຂອງທ່ານ.

ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງງ່າຍໆທີ່ເອົາຄ່າຕົວເລກຈາກເຊວ (cell) ຂອງ Calc ແລະ ເພີ່ມຄ່າຂຶ້ນ 1. ພຽງແຕ່ພິມໂຄດຕໍ່ໄປນີ້ລົງໃນໄຟລ໌ sf_test.py.


    from scriptforge import CreateScriptService
    doc = CreateScriptService("Calc")
    
    def increment_cell(args=None):
        value = doc.GetValue("A1")
        value += 1
        doc.SetValue("A1", value)
    
    g_exportedScripts = (increment_cell, )
  

ຕົວຢ່າງນີ້ສ້າງຟັງຊັນ increment_cell. ໃຫ້ສັງເກດວ່າ g_exportedScripts ແມ່ນ tuple ທີ່ບອກວ່າຟັງຊັນໃດຈະຖືກສະແດງໃນ LibreOfficeDev ເປັນສະຄຣິບຂອງຜູ້ໃຊ້.

ເພື່ອລັນສະຄຣິບນີ້ຈາກພາຍໃນເອກະສານ Calc:

  1. ສ້າງ ຫຼື ເປີດໄຟລ໌ Calc.

  2. ປ້ອນຄ່າຕົວເລກບາງຢ່າງລົງໃນເຊວ "A1" ໃນແຜ່ນງານປັດຈຸບັນ.

  3. ໄປທີ່ Tools - Macros - Run Macros .

  4. ເລືອກ My Macros - sf_test ໃນຕົວເລືອກຫ້ອງສະໝຸດ. ຈາກນັ້ນເລືອກຟັງຊັນ increment_cell ພາຍໃຕ້ລາຍການ Macro Name.

  5. ຄລິກ Run. ສັງເກດເຫັນວ່າຄ່າໃນເຊວ "A1" ຖືກເພີ່ມຂຶ້ນ 1.

ທ່ານຍັງສາມາດໃຊ້ APSO ເພື່ອລັນສະຄຣິບ Python ໃນລັກສະນະດຽວກັນໄດ້ນຳອີກ:

  1. ທຳອິດໃຫ້ເປີດ APSO ໂດຍການໄປທີ່ Tools - Macros - Organize Python Scripts.

  2. ໃນລາຍການມາໂຄຣ, ໃຫ້ເຂົ້າໄປທີ່ My Macros - sf_test - increment_cell.

  3. ຄລິກ Execute.

ການລັນສະຄຣິບແຍກຕ່າງຫາກຈາກໂປຣເຊສຂອງ LibreOfficeDev

ການກວດສອບເສັ້ນທາງການຕິດຕັ້ງ (Installation Path)

ຂັ້ນຕອນທຳອິດໃນການລັນສະຄຣິບຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກແມ່ນການຊອກຫາໂຟນເດີທີ່ LibreOfficeDev ຖືກຕິດຕັ້ງໄວ້. ມີຫຼາຍວິທີໃນການເຮັດແບບນັ້ນ, ແຕ່ ScriptForge ໃຫ້ວິທີທີ່ວ່ອງໄວໃນການລະບຸເສັ້ນທາງການຕິດຕັ້ງຂອງທ່ານ. ສຳລັບເລື່ອງນັ້ນ, ໃຫ້ເປີດ APSO's Python shell ແລະ ພິມ:


    from scriptforge import CreateScriptService
    fs = CreateScriptService("FileSystem")
    fs.FileNaming = "SYS"
    inst_dir = fs.InstallFolder
    print(inst_dir)
  

ຜົນໄດ້ຮັບຈາກໂຄດດ້ານເທິງແມ່ນໄດເຣັກທໍຣີຫຼັກ (base directory) ທີ່ LibreOfficeDev ຖືກຕິດຕັ້ງໄວ້. ຕອນນີ້ທ່ານຈຳເປັນຕ້ອງເພີ່ມໂຟນເດີຍ່ອຍ "program" ລົງໃນເສັ້ນທາງດັ່ງກ່າວ. ນີ້ແມ່ນໂຟນເດີຫຼັກທີ່ທ່ານຈະໃຊ້ລັນສະຄຣິບ Python ຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກ.

ຕົວຢ່າງເຊັ່ນ: ສົມມຸດວ່າທ່ານໄດ້ຮັບ /usr/lib/libreoffice/ ເປັນຜົນໄດ້ຮັບຈາກການລັນໂຄດ Python ດ້ານເທິງ. ຈາກນັ້ນທ່ານຈຳເປັນຕ້ອງຖືວ່າ /usr/lib/libreoffice/program ເປັນເສັ້ນທາງໃນການລັນສະຄຣິບ Python ຂອງທ່ານ.

ເລີ່ມ LibreOfficeDev ດ້ວຍການຕັ້ງຄ່າ pipe ຫຼື socket

ເພື່ອລັນສະຄຣິບ Python ຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກ, ທ່ານຈຳເປັນຕ້ອງເລີ່ມ LibreOfficeDev ດ້ວຍຕົວເລືອກເພີ່ມເຕີມບາງຢ່າງທີ່ລະບຸ hostname ແລະ port ເຊິ່ງໂປຣເຊສພາຍນອກຈະໃຊ້ເພື່ອສື່ສານກັບໂປຣເຊສຄອມໂພເນນຂອງ LibreOfficeDev.

ເປີດ command prompt ຂອງລະບົບປະຕິບັດການຂອງທ່ານ, ເຂົ້າໄປທີ່ໂຟນເດີ program ຂອງໄດເຣັກທໍຣີການຕິດຕັ້ງ LibreOfficeDev ຂອງທ່ານ ແລະ ພິມຢ່າງໃດຢ່າງໜຶ່ງຕໍ່ໄປນີ້:

./soffice --accept='pipe,name=libreoffice;urp;'

./soffice --accept='socket,host=localhost,port=2021;urp;'

ຄຳສັ່ງໃດໜຶ່ງດ້ານເທິງຈະເລີ່ມ LibreOfficeDev ດ້ວຍການເປີດຊ່ອງທາງການສື່ສານ ເພື່ອໃຫ້ໂປຣເຊສອື່ນສາມາດແລກປ່ຽນຂໍ້ຄວາມກັບມັນໄດ້.

ໃຫ້ສັງເກດວ່າຕົວຢ່າງກ່ອນໜ້ານີ້ຈະເປີດ LibreOfficeDev start center. ຖ້າທ່ານຕ້ອງການເປີດຄອມໂພເນນສະເພາະໃດໜຶ່ງ, ຕົວຢ່າງເຊັ່ນ Writer, ທ່ານສາມາດເພີ່ມແຟລັກ --writer ລົງໃນຄຳສັ່ງໄດ້ ດັ່ງນີ້.

./soffice --writer --accept='socket,host=localhost,port=2021;urp;'

ໃຫ້ຈົດບັນທຶກພາລາມິເຕີ name, ຫຼື host ແລະ port ເຊິ່ງໃນຕົວຢ່າງນີ້ແມ່ນ libreoffice, ຫຼື localhost ແລະ 2021 ຕາມລຳດັບ.

ການລັນ External Python Shell

ເລີ່ມ Python shell ຈາກພາຍໃນໂຟນເດີ program ທີ່ຢູ່ໃນເສັ້ນທາງການຕິດຕັ້ງ LibreOfficeDev ຂອງທ່ານ. ປະຕິບັດຕາມຂັ້ນຕອນ ດ້ານເທິງ ເພື່ອຮຽນຮູ່ວິທີການຊອກຫາເສັ້ນທາງການຕິດຕັ້ງຂອງທ່ານ.

ໃນ Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

ໃນ Windows:

$ cd C:\Program Files\LibreOffice\program\

$ python.exe

ນີ້ຈະເປີດ Python shell ແລະ ຕອນນີ້ທ່ານສາມາດເລີ່ມພິມຄຳສັ່ງທີ່ຈະຖືກປະມວນຜົນໂດຍ LibreOfficeDev. ແຕ່ກ່ອນອື່ນທ່ານຕ້ອງຕັ້ງຄ່າການເຊື່ອມຕໍ່ pipe ຫຼື socket. ຖະແຫຼງການ ScriptForge() ດ້ານລຸ່ມນີ້ຕ້ອງມາກ່ອນການເອີ້ນໃຊ້ CreateScriptService() ຄັ້ງທຳອິດ.

ລັນອັນໃດອັນໜຶ່ງ:


   from scriptforge import ScriptForge, CreateScriptService
   ScriptForge(pipe='libreoffice')

    from scriptforge import ScriptForge, CreateScriptService
    ScriptForge(hostname='localhost', port=2021)
  
ໄອຄອນ ບັນທຶກ

ອ່ານພາກ ການຕັ້ງຄ່າ PYTHONPATH ດ້ານລຸ່ມນີ້ ໃນກໍລະນີທີ່ເກີດຂໍ້ຜິດພາດໃນການນຳເຂົ້າ scriptforge.py ຫຼື uno.py.


ລະຫັດແຖວທີສອງດ້ານເທິງກຳນົດການຕັ້ງຄ່າ pipe ຫຼື host ແລະ port ເພື່ອໃຫ້ Python shell ສາມາດສື່ສານກັບຂະບວນການ LibreOfficeDev ທີ່ກຳລັງເຮັດວຽກຢູ່ ເຊິ່ງຖືກເປີດດ້ວຍການຕັ້ງຄ່າ pipe ຫຼື socket ດຽວກັນ.

ຕອນນີ້ທ່ານສາມາດລັນຄຳສັ່ງ Python ອື່ນໆ ແລະ ພວກມັນຈະສາມາດສື່ສານກັບຂະບວນການ LibreOfficeDev ໄດ້. ຕົວຢ່າງ:


    ui = CreateScriptService("UI")
    bas = CreateScriptService("Basic")
    doc = ui.OpenDocument("~/Documents/myFile.ods")
    bas.MsgBox(doc.DocumentType)
  

ການຕັ້ງຄ່າ PYTHONPATH

ອີງຕາມການກຳນົດຄ່າລະບົບປະຕິບັດການຂອງທ່ານ ທ່ານຈະຕ້ອງຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມ PYTHONPATH ເພື່ອນຳເຂົ້າໄລບຣາຣີ scriptforge.py, ເຊິ່ງຈຳເປັນຕ້ອງມີການນຳເຂົ້າໄລບຣາຣີ uno.py ນຳ.

ໃຊ້ເຄື່ອງມືຄົ້ນຫາໄຟລ໌ຂອງລະບົບປະຕິບັດການຂອງທ່ານເພື່ອລະບຸໄດເຣັກທໍຣີທີ່ໄຟລ໌ທັງສອງນີ້ຕັ້ງຢູ່.

ຕົວຢ່າງ, ໃນການຕິດຕັ້ງ Ubuntu ແບບເລີ່ມຕົ້ນ ໄຟລ໌ທັງສອງອາດຈະຕັ້ງຢູ່ທີ່:

ໃນກໍລະນີນີ້, ໃຫ້ຕັ້ງຕົວແປສະພາບແວດລ້ອມ PYTHONPATH ດັ່ງຕໍ່ໄປນີ້ ກ່ອນທີ່ຈະເລີ່ມຕົວແປພາສາ Python:

export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages

ໄອຄອນ ບັນທຶກ

ຕຳແໜ່ງຂອງໄຟລ໌ເຫຼົ່ານີ້ຈະແຕກຕ່າງກັນໄປຕາມແຕ່ລະລະບົບປະຕິບັດການ ແລະ ວິທີການຕິດຕັ້ງ LibreOfficeDev.


ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!