วิธีเชื่อมต่อ ONLYOFFICE Desktop Editors กับ ownCloud Server
เชื่อมต่อ ONLYOFFICE Desktop Editors กับเซิร์ฟเวอร์ ownCloud ของคุณ ลงชื่อเข้าใช้ เปิดไฟล์บนคลาวด์ จัดการการเชื่อมต่อ และแก้ไขปัญหาการตั้งค่าทั่วไป
ใช่แล้ว LibreOffice Calc สามารถรันโค้ด Python เป็นมาโครภายในกระบวนการของ LibreOffice ได้ และมาโคร Basic ของ LibreOffice ก็สามารถเรียกใช้ฟังก์ชัน Python ผ่านเฟรมเวิร์กการเขียนสคริปต์ของ LibreOffice ได้เช่นกัน หากเป้าหมายของคุณคือการอ่านหรือแก้ไขเซลล์ในสเปรดชีตที่เปิดอยู่ การใช้มาโคร Python ภายในกระบวนการมักจะเป็นจุดเริ่มต้นที่ง่ายที่สุด ใช้การเรียกจาก Basic ไปยัง Python เมื่อมาโคร Basic ที่มีอยู่ควรส่งต่อภารกิจหนึ่งไปยังฟังก์ชัน Python ที่นำกลับมาใช้ใหม่ได้
วิธีการเหล่านี้แตกต่างจากการเรียกใช้สคริปต์ Python ของระบบทั่วไปด้วยคำสั่งเชลล์ กระบวนการ Python ภายนอกปกติจะไม่ได้รับออบเจ็กต์เอกสารของ Calc โดยอัตโนมัติ สำหรับการเข้าถึงเวิร์กบุ๊ก ให้เรียกใช้มาโคร Python ผ่าน LibreOffice หรือเชื่อมต่อกระบวนการภายนอกกับอินสแตนซ์ LibreOffice ผ่าน UNO โดยเจาะจง
LibreOffice รองรับภาษาสคริปต์หลายภาษาผ่านเฟรมเวิร์กการเขียนสคริปต์ ในมาโคร Python นั้น LibreOffice จะจัดเตรียมออบเจ็กต์บริบท UNO ซึ่งช่วยให้สคริปต์สามารถเข้าถึงเอกสารปัจจุบันและชีตต่างๆ ได้ มาโคร Python คือฟังก์ชันใน.pyโมดูล โดยทูเปิลของโมดูลg_exportedScriptsจะระบุฟังก์ชันที่ LibreOffice ควรแสดงเป็นมาโครที่สามารถเรียกใช้งานได้
มาโคร Python สามารถทำงานได้ด้วยตัวเองจากเมนูมาโครของ Calc โดยไม่จำเป็นต้องเรียกใช้จากภาษา Basic หากคุณมีมาโคร Basic อยู่แล้วและต้องการให้เรียกใช้ Python คุณสามารถใช้ Script Provider ของ LibreOffice หรือSession.ExecutePythonScriptบริการ ScriptForge ที่ใหม่กว่าเพื่อเชื่อมต่อสองภาษาเข้าด้วยกันได้
ตัวอย่างเช่น เครื่องมือทำความสะอาดสเปรดชีตขนาดเล็กสามารถเขียนได้ทั้งหมดในรูปแบบมาโคร Python หากปุ่ม Basic ที่มีอยู่แล้วเรียกใช้รายงาน ให้คงมาโครของปุ่มนั้นไว้และให้มันเรียกใช้ฟังก์ชัน Python ที่คำนวณผลรวมของรายงาน
LibreOffice จะจัดเก็บสคริปต์ Python ส่วนบุคคลไว้ในโปรไฟล์ผู้ใช้ สคริปต์ที่ใช้งานได้ทั่วทั้งแอปพลิเคชันไว้ในไดเร็กทอรีการติดตั้ง และสคริปต์เอกสารไว้กับเอกสาร สำหรับการทดสอบครั้งแรก สคริปต์ส่วนบุคคลนั้นสะดวกกว่า เพราะสามารถเข้าถึงได้จากเอกสาร LibreOffice ใดๆ ก็ได้ที่เปิดอยู่สำหรับผู้ใช้คนเดียวกัน อย่างไรก็ตาม สคริปต์นี้จะไม่ถูกแนบไปกับไฟล์ ODS ดังนั้นบุคคลอื่นจะไม่ได้รับสคริปต์นี้ไปพร้อมกับสเปรดชีตโดยอัตโนมัติ
ค้นหาโฟลเดอร์สคริปต์ Python ส่วนตัวสำหรับระบบของคุณในวิธีใช้ LibreOffice ภายใต้หัวข้อ “การจัดระเบียบและตำแหน่งของสคริปต์ Python” ตำแหน่งทั่วไป ได้แก่%APPDATA%\LibreOffice\4\user\Scripts\pythonบน Windows และ~/.config/libreoffice/4/user/Scripts/pythonบน Linux โปรไฟล์จริงอาจแตกต่างกันไป ให้ใช้ตำแหน่งที่ระบุไว้สำหรับการติดตั้งของคุณแทนที่จะสร้างไดเร็กทอรีโปรไฟล์ที่สองโดยการคาดเดา
สร้างไฟล์ชื่อcalc_tools.pyในโฟลเดอร์สคริปต์ Python ส่วนตัว จากนั้นเพิ่มตัวอย่างง่ายๆ นี้ลงไป:
def double_a1(args=None):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.getCurrentController().getActiveSheet()
source = sheet.getCellRangeByName("A1")
target = sheet.getCellRangeByName("B1")
target.setValue(source.getValue() * 2)
g_exportedScripts = (double_a1,)
โค้ดนี้จะอ่านค่าตัวเลขในเซลล์ A1 ของชีตที่ใช้งานอยู่ และเขียนค่าดังกล่าวสองเท่าลงในเซลล์ B1 XSCRIPTCONTEXTโค้ดนี้จะถูกส่งไปยังมาโคร Python ของ LibreOffice ในระหว่างการทำงาน ไม่ใช่ตัวแปรส่วนกลางของ Python ทั่วไปเมื่อเปิดไฟล์เดียวกันนอก LibreOffice ฟังก์ชันสาธารณะนี้ถูกระบุไว้ในรายการg_exportedScriptsดังนั้นจึงปรากฏในตัวเลือกมาโคร
บันทึกไฟล์ จากนั้นเปิดหรือกลับไปที่ Calc แล้วเลือกTools > Macros > Run Macrosขึ้นอยู่กับเวอร์ชันของ LibreOffice หรือการแปลแพลตฟอร์ม ชื่อเมนูอาจเป็นเอกพจน์ เลือกMy Macros > calc_tools > double_a1แล้วเรียกใช้ ป้อนตัวเลขใน A1 ก่อน จากนั้นตรวจสอบว่า B1 มีค่าที่คูณสองแล้วหรือไม่ หากโมดูลไม่ปรากฏ ให้ตรวจสอบว่านามสกุลไฟล์เป็น . .pypy ไฟล์อยู่ในโฟลเดอร์ Python ของโปรไฟล์ที่ถูกต้อง และติดตั้งการสนับสนุนการเขียนสคริปต์ Python แล้ว การรีสตาร์ท LibreOffice หลังจากเพิ่มโมดูลใหม่สามารถช่วยรีเฟรชรายการสคริปต์ได้
สำหรับการเรียกใช้ฟังก์ชันจากภาษา Basic ไปยัง Python ให้วางโมดูล Python ไว้ในโฟลเดอร์สคริปต์ส่วนตัว แล้วเรียกใช้ฟังก์ชันนั้นผ่านSessionบริการของ ScriptForge ตัวอย่างนี้จะบวกค่าสองค่าใน Python และเขียนผลลัพธ์ลงในเซลล์ B1 ในชีต Calc ปัจจุบัน
ในcalc_tools.pyให้กำหนดฟังก์ชัน:
def add_values(first, second):
return float(first) + float(second)
g_exportedScripts = (add_values,)
จากนั้นสร้างมาโครพื้นฐานใน Calc แล้วใช้คำสั่งต่อไปนี้:
Sub RunPythonHelper()
Dim session As Object
Dim result As Variant
Dim sheet As Object
session = CreateScriptService("Session")
result = session.ExecutePythonScript( _
session.SCRIPTISPERSONAL, _
"calc_tools.py$add_values", _
12, 30)
sheet = ThisComponent.CurrentController.getActiveSheet()
sheet.getCellRangeByName("B1").setValue(result)
End Sub
เรียกใช้RunPythonHelperจากตัวเลือกมาโครพื้นฐาน หากการเรียกใช้สำเร็จ เซลล์ B1 ควรแสดงค่า 42 การอ้างอิงสคริปต์มีรูปแบบดังนี้module.py$function_name; สำหรับโมดูลในโฟลเดอร์ย่อยหรือตำแหน่งจัดเก็บอื่น ให้ใช้ไวยากรณ์และค่าคงที่ตำแหน่งที่ระบุไว้ในเอกสารสำหรับ ScriptForge เวอร์ชันนั้น เก็บอาร์กิวเมนต์และค่าส่งคืนไว้ในประเภทข้อมูลที่ทั้งสองภาษาสามารถแสดงได้อย่างชัดเจน เช่น ตัวเลข สตริง และลำดับอย่างง่าย
CreateScriptServiceและตัวช่วยเซสชัน ScriptForge ที่มีเอกสารกำกับไว้นั้นมีอยู่ใน LibreOffice เวอร์ชันใหม่ๆ แต่ชื่อเมนูและส่วนประกอบที่รวมมาด้วยอาจแตกต่างกันในเวอร์ชันเก่าหรือเวอร์ชันที่บรรจุมาพร้อมกับการแจกจ่าย หากบริการนี้ไม่พร้อมใช้งาน ให้ใช้วิธีการจัดหาสคริปต์ UNO ที่มีเอกสารกำกับไว้ใน LibreOffice ซึ่งจะได้รับXScriptURI ของสคริปต์และเรียกใช้ หลีกเลี่ยงการคัดลอกส่วนของโค้ดไปยังตำแหน่งมาโครอื่นโดยไม่เปลี่ยนการตั้งค่าตำแหน่งก่อน
| พื้นที่จัดเก็บ | เหมาะสมที่สุด | การแลกเปลี่ยน |
|---|---|---|
| มาโครของฉัน / โปรไฟล์ผู้ใช้ | เครื่องมือที่คุณสร้างขึ้นเองและนำกลับมาใช้ซ้ำได้ในเอกสารต่างๆ | ไม่ได้รวมไว้โดยอัตโนมัติเมื่อคุณส่งสเปรดชีต |
| มาโครแอปพลิเคชัน | สคริปต์ที่จัดการโดยผู้ใช้หลายคนในการติดตั้งครั้งเดียว | โดยทั่วไปแล้ว การติดตั้งหรือการบำรุงรักษาจะต้องใช้สิทธิ์ผู้ดูแลระบบ |
| มาโครเอกสาร | โค้ดที่ตั้งใจจะเชื่อมโยงกับเอกสารฉบับเดียว | ผู้รับอาจต้องอนุญาตให้ใช้มาโคร ทดสอบความเข้ากันได้และความปลอดภัยบนเวอร์ชัน LibreOffice เป้าหมาย |
สำหรับการทำงานเป็นทีม ให้ตัดสินใจว่าผู้รับจะได้รับและเชื่อถือโค้ดอย่างไรก่อนที่จะสร้างเวิร์กบุ๊กโดยใช้มาโครส่วนตัว หากตรรกะ Python ต้องอยู่ในสเปรดชีต ให้ทดสอบการจัดเก็บมาโครและข้อความแจ้งเตือนด้านความปลอดภัยของเอกสารในเวอร์ชัน LibreOffice เดียวกันกับที่ผู้รับใช้ สำหรับการใช้งานแบบมีการจัดการ ผู้ดูแลระบบสามารถจัดแพ็กเกจสคริปต์สำหรับผู้ใช้หรือแจกจ่ายส่วนขยายภายใต้การควบคุมซอฟต์แวร์ปกติขององค์กรได้
Scripts/pythonไดเร็กทอรี นั้นg_exportedScriptsฟังก์ชันนี้ลงในตัวเลือกมาโครที่คุณต้องการเรียกใช้ ตรวจสอบให้แน่ใจว่าไวยากรณ์ของทูเพิลมีเครื่องหมายจุลภาคปิดท้ายสำหรับทูเพิลที่มีรายการเดียวXSCRIPTCONTEXTมีไว้สำหรับมาโครที่เรียกใช้โดย LibreOffice ไม่ใช่เมื่อเปิดไฟล์เดียวกันด้วยpythonคำสั่งของระบบ ให้ใช้ตัวเรียกใช้มาโครหรือตั้งค่าการเชื่อมต่อ UNO ตามที่ได้มีการบันทึกไว้XSCRIPTCONTEXTจะไม่ส่งต่อบริบทนี้ไปยังโมดูลที่นำเข้า ควรส่งออบเจ็กต์เอกสารหรือชีตที่จำเป็นไปยังฟังก์ชันตัวช่วยแทนที่จะคาดหวังให้โมดูลที่นำเข้าอ่านค่าส่วนกลางนั้นทดสอบโดยใช้สำเนาของสเปรดชีตและข้อมูลป้อนเข้าที่ทราบแล้ว ตรวจสอบว่ามาโคร Python ปรากฏในตัวเรียกใช้งาน เรียกใช้หนึ่งครั้ง และเปรียบเทียบเซลล์ผลลัพธ์กับผลลัพธ์ที่คำนวณด้วยมือ สำหรับการเรียกใช้จาก Basic ไปยัง Python ให้ทดสอบข้อมูลป้อนเข้าอย่างง่ายหนึ่งรายการและตรวจสอบว่าค่าที่ส่งคืนถูกเขียนลงในชีตที่ต้องการ หลีกเลี่ยงการเริ่มต้นด้วยสคริปต์ที่ลบชีต เขียนทับช่วงข้อมูลขนาดใหญ่ หรือเรียกใช้คำสั่งของระบบปฏิบัติการ
เมื่อการทดสอบสำเร็จแล้ว ให้ตัดสินใจว่าจะติดตั้งสคริปต์บนคอมพิวเตอร์เครื่องอื่นอย่างไร และบันทึกไลบรารี Python ที่จำเป็นหรือข้อสมมติเกี่ยวกับเวอร์ชันของ LibreOffice สภาพแวดล้อม Python ที่มาพร้อมกับ LibreOffice นั้นใช้สำหรับมาโครแบบ in-process แพ็กเกจที่ติดตั้งสำหรับตัวแปลภาษา Python ของระบบอื่นอาจไม่สามารถใช้งานได้ หากคุณต้องการแพ็กเกจจากตัวแปลภาษาอื่น ให้ใช้วิธีการแบบ external-process/UNO และกำหนดค่าการเชื่อมต่อดังกล่าวอย่างรอบคอบ
เชื่อมต่อ ONLYOFFICE Desktop Editors กับเซิร์ฟเวอร์ ownCloud ของคุณ ลงชื่อเข้าใช้ เปิดไฟล์บนคลาวด์ จัดการการเชื่อมต่อ และแก้ไขปัญหาการตั้งค่าทั่วไป
แก้ไขปัญหาการใช้งาน CPU สูงใน Collabora Online โดยการระบุโปรเซสชุดเครื่องมือที่ทำงานหนัก ตรวจสอบเมตริกและบันทึก ปรับแต่งการทำงานพร้อมกันและการล้างข้อมูล และตรวจสอบการแก้ไขอย่างปลอดภัย
เรียนรู้วิธีปรับแต่งแบรนด์ ONLYOFFICE Docs ด้วยโลโก้ส่วนหัวและสีของอินเทอร์เฟซ รวมถึงข้อจำกัดของใบอนุญาต การตั้งค่าธีม JSON เส้นทาง Docker และการทดสอบ
แก้ไขปัญหาข้อความที่อ่านยากใน LibreOffice Calc โดยตรวจสอบธีมของแอป แบบอักษรและสีเติมของเซลล์ สไตล์ และการจัดรูปแบบตามเงื่อนไข จากนั้นตรวจสอบผลลัพธ์การพิมพ์
ล้างคำเตือนการล็อกผู้ใช้ที่ไม่รู้จักของ LibreOffice อย่างปลอดภัย ตรวจสอบเซสชันที่ใช้งานอยู่ ป้องกันสำเนา ลบเฉพาะการล็อกที่หมดอายุซึ่งได้รับการตรวจสอบแล้ว และทดสอบเอกสาร
แก้ไขข้อความภาษาอาหรับหรือฮิบรูที่จัดเรียงหรือผสมกับภาษาอังกฤษไม่ถูกต้องใน LibreOffice Writer เปิดใช้งานการจัดวางข้อความที่ซับซ้อน กำหนดทิศทางย่อหน้า และตรวจสอบผลลัพธ์
เรียนรู้การใช้งาน VLOOKUP และ XLOOKUP ใน LibreOffice Calc รวมถึงการค้นหาแบบตรงกันทุกประการ การค้นหาทางซ้าย ผลลัพธ์ที่ไม่พบ การค้นหาแบบย้อนกลับ ทางเลือกอื่นนอกเหนือจาก INDEX/MATCH และข้อผิดพลาดที่พบบ่อย
แก้ไขปัญหาการตรวจสอบความถูกต้องของหลักฐาน WOPI ใน Collabora Online โดยตรวจสอบคีย์การค้นหา การหมุนเวียนคีย์ URL พร็อกซี การประทับเวลา และรายการอนุญาตโฮสต์
เปิดใช้งานการติดตามการเปลี่ยนแปลงสำหรับทุกคนในเอกสาร ONLYOFFICE รักษาสถานะการใช้งานไว้หลังจากเปิดเอกสารใหม่ และทำความเข้าใจข้อจำกัดของการตั้งค่าเริ่มต้นแบบทั่วโลก
เปรียบเทียบการตั้งค่าการหมดเวลาต่อการดู การไม่โฟกัส การไม่มีการใช้งานเอกสาร การบันทึกอัตโนมัติ และพร็อกซีของ Collabora Online จากนั้นเลือกและตรวจสอบการตั้งค่าสำหรับการใช้งานของคุณ