gpt4 book ai didi

javascript - 如何使用 Google App Script 将 Google 表格单元格中的格式化文本保存到 .rtf?

转载 作者:行者123 更新时间:2023-12-04 10:12:15 25 4
gpt4 key购买 nike

Tab "Newsticker" in Google Spreadsheet

我在 Google App Script 中有一个简单的脚本,它从 Google 表格(RSS-Feeds)中的单元格中获取字符串值并保存(更新)一些 .rtf - 文档。经过一些同步过程和宏助手后,这些文本会显示在滚动的 LED 条上,可以通过 WIFI 更新。

这有效,但我没有设法格式化 .rtf - 文档中的文本。

我尝试了 RichTextValueBuilder,它可以很好地为 google 电子表格中的文本添加格式,但在 .rtf 格式的文本中没有成功...
另一个实验是使用 html-tags。这在 rtf 文件中带来了所需的格式化效果,但 led-bar 的应用程序无法处理它。

有人知道在这种情况下如何帮助菜鸟吗?非常感谢!

function dataLED() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var ass = ss.getSheetByName("Newsticker");

//VALUES FROM CELLS IN GOOGLE SHEETS
var valuesLedBar = ass.getRange(2, 10, 4, 1).getValues();
var vak1 = valuesLedBar[0];
var vak2 = valuesLedBar[1];
var vak3 = valuesLedBar[2];
var vak4 = valuesLedBar[3];
var marge = ass.getRange("B16").getValue();

//SAVE IN .RTF-FILES (IN FOLDER dataLEDbar)
var folders = DriveApp.getFoldersByName("dataLEDbar");

if (folders.hasNext()) {
var folder = folders.next();

saveData(folder, "0808003135589.rtf", vak1);
saveData(folder, "0808003133343.rtf", vak2);
saveData(folder, "0808003136619.rtf", vak3);
saveData(folder, "0808003135964.rtf", vak4);
saveData(folder, "0808182631849.rtf", "Gewinnmarge diesen Monat:" + marge);
}
else {null}

};


//-------------------------------------------------SAVE

function saveData(folder, fileName, contents) {

var children = folder.getFilesByName(fileName);
var file = null;
if (children.hasNext()) {
file = children.next();
file.setContent(contents);
} else {
file = folder.createFile(fileName, contents);
}
}

最佳答案

以下是我的理解:

  • 您有一个 Google 电子表格,其中包含“J2:J5”单元格中的富文本。
  • 您想从“J2:J5”的单元格中检索富文本,并希望将它们创建为 mimeType 为 application/rtf 的每个文件。 .
  • 在您的情况下,创建了 4 个富文本文件。
  • 您想使用 Google Apps 脚本来实现这一点。

  • 在这个答案中,为了实现您的目标,我使用了 RichTextApp 的 Google Apps 脚本库。 .

    用法:

    1.安装GAS库。

    请安装 RichTextApp 的 GAS 库。您可以在 here 查看如何安装.

    2. 示例脚本。

    请复制并粘贴以下示例脚本,然后运行 ​​ myFunction .这样,当文件夹存在时,会为该文件夹创建 4 个富文本文件。
    function myFunction() {
    const filenames = ["0808003135589.rtf", "0808003133343.rtf", "0808003136619.rtf", "0808003135964.rtf"];
    const folderName = "dataLEDbar";
    const sheetName = "Newsticker";

    const folders = DriveApp.getFoldersByName(folderName);
    const folder = folders.hasNext() ? folders.next() : DriveApp.getRootFolder();
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sheet = ss.getSheetByName(sheetName);
    for (let i = 2; i <= 5; i++) {
    const range = sheet.getRange("J" + i);
    const doc = DocumentApp.create("tempDocument");
    const docId = doc.getId();
    RichTextApp.SpreadsheetToDocument({range: range, document: doc});
    doc.saveAndClose();
    const url = "https://docs.google.com/feeds/download/documents/export/Export?exportFormat=rtf&id=" + docId;
    const res = UrlFetchApp.fetch(url, {headers: {authorization: "Bearer " + ScriptApp.getOAuthToken()}});
    folder.createFile(res.getBlob().setName(filenames[i - 2]));
    DriveApp.getFileById(docId).setTrashed(true);
    }
    }

    笔记:
  • 这是一个简单的示例脚本。所以请根据您的实际情况修改它。

  • 引用:
  • RichTextApp
  • 关于javascript - 如何使用 Google App Script 将 Google 表格单元格中的格式化文本保存到 .rtf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61269329/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com