如何在 ONLYOFFICE 文檔中編寫(xiě) JavaScript 宏

言鼎科技 2023-07-10 879

您是否必須處理 Word 文檔、Excel 電子表格或 PowerPoint 演示文稿,并且必須一遍又一遍地重復(fù)復(fù)雜的任務(wù)?例如,您需要在電子表格中標(biāo)記重復(fù)值或從演示文稿的幻燈片中刪除屬性。


如果是這樣,對(duì)于 Linux 用戶(hù)來(lái)說(shuō)可能會(huì)很困難。手動(dòng)完成這些工作是沒(méi)有意義的。使用 Microsoft Office 中的 VBA 宏可以輕松實(shí)現(xiàn)許多不同任務(wù)的自動(dòng)化。然而,有一個(gè)很大的缺點(diǎn)——它們通常不能在 Linux 機(jī)器上運(yùn)行。


但這個(gè)問(wèn)題有一個(gè)巧妙的解決方案。您可以編寫(xiě) JavaScript 宏并在 ONLYOFFICE Docs 中運(yùn)行它們以創(chuàng)建異步任務(wù)。


閱讀本文以了解具體方法。

目錄

什么是 ONLYOFFICE 文檔?

ONLYOFFICE Docs 是一款開(kāi)放式自托管辦公套件,旨在在 Linux 或 Windows 服務(wù)器上創(chuàng)建本地協(xié)作環(huán)境。



它為各種文件共享解決方案、電子學(xué)習(xí)平臺(tái)和文檔管理系統(tǒng)帶來(lái)了實(shí)時(shí)編輯和同步文檔的優(yōu)勢(shì)。



目前,它可與 Moodle、Drupal 和其他軟件配合使用??梢酝ㄟ^(guò) GitHub 上提供的現(xiàn)成鏈接進(jìn)行集成。


借助 ONLYOFFICE Docs,您可以處理所有流行的 Office 文件類(lèi)型,包括文本文檔、電子表格、可填寫(xiě)電子表格、幻燈片和 PDF。


ONLYOFFICE Docs 的默認(rèn)格式是 OOXML(DOCX、XLSX、PPTX),因此它可以輕松替換 Linux 計(jì)算機(jī)上的 Microsoft Office。其他流行格式(例如 ODF)也支持自動(dòng)轉(zhuǎn)換為 OOXML。


除了個(gè)性化版本外,ONLYOFFICE Docs 還有供個(gè)人使用的免費(fèi)云版本。還有適用于所有流行桌面和移動(dòng)平臺(tái)的免費(fèi)應(yīng)用程序,包括 Windows、macOS、Linux、Android 和 iOS。


在自動(dòng)化方面,ONLYOFFICE Docs 與 Microsoft 的 VBA 宏不兼容。它使用 JavaScript 宏,能夠以更安全的方式執(zhí)行相同的功能。


ONLYOFFICE 文檔宏入門(mén)

宏是一個(gè)小腳本,可以通過(guò)自動(dòng)執(zhí)行任務(wù)來(lái)輕松處理不同類(lèi)型的文檔。換句話(huà)說(shuō),它是一段程序代碼,包含一組您可以隨意執(zhí)行的操作。


例如,您可以運(yùn)行相應(yīng)的宏,以使用不同的顏色突出顯示表單選定區(qū)域中的重復(fù)項(xiàng)。


在 ONLYOFFICE 文檔中,它看起來(lái)像這樣:



這個(gè)宏有什么實(shí)用價(jià)值呢?處理數(shù)據(jù)時(shí),您可以通過(guò)按相應(yīng)按鈕根據(jù)需要多次標(biāo)記重復(fù)值,在幾秒鐘內(nèi)執(zhí)行保存的宏,從而節(jié)省時(shí)間。



在 ONLYOFFICE Docs 中,宏基于 JavaScript 語(yǔ)法和 ONLYOFFICE Document Builder API 方法。它們比 VBA 宏更好有一些明顯的原因:


ONLYOFFICE 宏是跨平臺(tái)的 - 與 Visual Basic 不同,JavaScript 是最常見(jiàn)的編程語(yǔ)言。因此,JavaScript 宏可以輕松地在 Windows、Linux 和 macOS 平臺(tái)上運(yùn)行。

ONLYOFFICE 宏易于使用 - JavaScript 通常被推薦給初學(xué)者,并且擁有快速增長(zhǎng)的社區(qū)。許多人選擇 JavaScript 作為他們的主要編程語(yǔ)言,因?yàn)榫W(wǎng)上有許多詳細(xì)的教程和說(shuō)明。

ONLYOFFICE 宏是安全的 – ONLYOFFICE 宏的 JavaScript 代碼與編輯器在同一窗口中運(yùn)行。因此,攻擊者無(wú)法利用它們來(lái)破壞您的應(yīng)用程序,因?yàn)樗麄兛床坏剿?/span>

ONLYOFFICE 宏是 ONLYOFFICE 文檔生成器中包含的一組 JavaScript 語(yǔ)法和 API 方法。


ONLYOFFICE Document Builder 是一個(gè) C++ 庫(kù),用于創(chuàng)建和編輯 Office Open XML 文件以及以 DOCX、XSLX、PPTX 和 PDF 格式保存非 OOXML 文件。它與 JavaScript API 一起使用。


ONLYOFFICE API 方法有很多,其中大部分您可能不會(huì)使用。以下是一些很好的例子:


SetFillColor方法旨在將當(dāng)前單元格區(qū)域的背景顏色更改為前一個(gè)顏色對(duì)象的顏色。

GetValue方法返回指定范圍的值。

GetSlideByIndex方法將幻燈片返回到其在顯示中的位置。

還有許多其他人。

所有 ONLYOFFICE API 方法及其功能的詳細(xì)說(shuō)明都可以在官方文檔中找到。


使用ONLYOFFICE Docs,可以通過(guò)工具欄頂部的特殊插件創(chuàng)建和刪除宏。要訪(fǎng)問(wèn)它,請(qǐng)打開(kāi)“插件”選項(xiàng)卡并單擊“宏”按鈕。您將看到一個(gè)窗口,您可以在其中為宏編寫(xiě) JavaScript 代碼。


使用適當(dāng)?shù)陌粹o,您可以創(chuàng)建新的宏并刪除現(xiàn)有的宏。它們還允許您重命名宏,甚至啟用自動(dòng)啟動(dòng)功能。



現(xiàn)在您已經(jīng)了解了 ONLYOFFICE 宏的工作原理,讓我們來(lái)編寫(xiě)一個(gè)宏。在開(kāi)始之前,我們需要決定我們將用宏來(lái)做什么工作。



讓我們從簡(jiǎn)單的事情開(kāi)始,假設(shè)我們需要更改 Excel 工作簿中單元格的背景顏色。這項(xiàng)任務(wù)是小菜一碟,但我們即將創(chuàng)建的宏會(huì)讓它變得更容易。


首先,轉(zhuǎn)到“插件”選項(xiàng)卡并單擊“宏”。當(dāng)您第一次打開(kāi)此窗口時(shí),您將看到一個(gè)已經(jīng)創(chuàng)建的宏。但是,該宏不會(huì)包含任何 JavaScript 代碼。您得到的是一個(gè)簡(jiǎn)單的函數(shù)包裝器:


(功能()

{

    // ...你的代碼在這里

})();

如有必要,重命名您的宏。



現(xiàn)在您可以開(kāi)始編寫(xiě)代碼了。查看上一章中已介紹的 ONLYOFFICE Document Builder API 文檔后,您將知道應(yīng)該對(duì)宏使用以下方法:


用于獲取活動(dòng)工作表的Api.GetActiveSheet方法。

GetRange方法設(shè)置所需的范圍。

SetFillColor方法設(shè)置所需單元格的背景顏色。

Api.CreateColorFromRGB設(shè)置所需的顏色。

首先,您需要獲取活動(dòng)表單并通過(guò)輸入適當(dāng)?shù)姆椒ㄔO(shè)置所需的長(zhǎng)度讓我們定位單元格 A2。開(kāi)始在工作表中鍵入方法名稱(chēng),您將看到所有可用的工具提示,這非常方便。



然后,您需要設(shè)置當(dāng)前單元格的背景顏色。為此,請(qǐng)使用SetFillColor方法。Api.CreateColorFromRGB方法將允許您設(shè)置所需的顏色。您的代碼應(yīng)如下所示:


(功能()

{

    // Api.GetActiveSheet().GetRange("A2").SetFillColor(Api.CreateColorFromRGB(0, 0, 210));

})();


現(xiàn)在是時(shí)候運(yùn)行宏并查看結(jié)果了。單擊“運(yùn)行”按鈕后,您將看到單元格 A2 已著色。您可以通過(guò)更改Api.CreateColorFromRGB方法中的值來(lái)使用不同的顏色。



如果您不想學(xué)習(xí) JavaScript 編碼基礎(chǔ)知識(shí)來(lái)創(chuàng)建 ONLYOFFICE 宏,您可以隨時(shí)使用官方網(wǎng)站上現(xiàn)成的宏示例,并根據(jù)您的需求進(jìn)行自定義。


正如您所看到的,在 ONLYOFFICE Docs 中創(chuàng)建宏并不像乍一看那么困難。當(dāng)然,您需要了解 JavaScript 編碼的基礎(chǔ)知識(shí),才能創(chuàng)建包含大量代碼行的復(fù)雜宏。


然而,為日常任務(wù)創(chuàng)建簡(jiǎn)單的宏并不要求您成為 JavaScript 專(zhuān)家。您可以在嘗試創(chuàng)建自己的插件時(shí)學(xué)習(xí)基本原理。


重要的是,ONLYOFFICE辦公套件附帶詳細(xì)的API文檔和用戶(hù)友好的示例,使創(chuàng)建宏的過(guò)程盡可能簡(jiǎn)單。


The End