gpt4 book ai didi

google-apps-script - 如何将表从电子表格复制到 Google 文档 `link to Spreadsheet`?

转载 作者:行者123 更新时间:2023-12-04 01:11:59 24 4
gpt4 key购买 nike

当用户从电子表格手动复制一个范围并将其粘贴到 Google 文档时,它会提示“链接到电子表格”和“正常粘贴”选项。

我需要执行“使用 google apps 脚本链接到电子表格”的功能

link to spreadsheet while pasting manually


用例上下文

我们有一个包含表格的电子表格,我们正试图将其复制到我们的最终文档中,用户可以在其中添加其他内容。

因此,如果出于任何原因需要更改电子表格中的某些值,我们的用户只想简单地刷新表格数据。

最佳答案

回答

如果没有解决方法,这是不可能的。

table object in the documentation没有像 UI 中那样插入带有“电子表格链接”的表格的方法。求在table object in the Docs API那里也没有任何暴露。您可以在 Issue Tracker 中为此提交功能请求,目前,我看不到对此的任何功能请求。

解决方法的潜在途径

任何解决方法都不会像 UI 那样无缝,但如果您想自动插入来自特定来源的表格,这里有一个示例。

请注意,这只是一个起点。您应该对此进行试验,然后如果您需要更多功能并遇到问题,您应该针对您遇到的具体问题提出新问题。

简介和初始步骤

此脚本将从工作表中获取表格。这张表应该是工作表中唯一的东西。脚本的设置方式是使用 getDataRange 自动选择工作表中的所有数据。您可以根据电子表格的设置方式为您的用例修改此设置。

![enter image description here

然后它将附加表格到文档的末尾。您可以根据需要修改它。它将保留大部分格式。

enter image description here

样式不会完全匹配,但同样,您可以根据您的用例确定细节。

说明

  1. 获取电子表格和文档的id号
  2. 创建脚本文件
  3. 复制这个函数:
function appendTable() {

// Replace these values with your Sheet ID, Document ID, and Sheet Name

let ssId = '<your spreadsheet id>' // REPLACE
let docId = '<your document id>' // REPLACE
let sheetName = '<your sheet name>' // REPLACE

// Sheet
let range = SpreadsheetApp.openById(ssId).getSheetByName(sheetName).getDataRange()
let values = range.getValues();
let backgroundColors = range.getBackgrounds();
let styles = range.getTextStyles();


// Document
let body = DocumentApp.openById(docId).getBody();
let table = body.appendTable(values);

for (let i=0; i<table.getNumRows(); i++) {
for (let j=0; j<table.getRow(i).getNumCells(); j++) {

let docStyles = {};

docStyles[DocumentApp.Attribute.BACKGROUND_COLOR] = backgroundColors[i][j];
docStyles[DocumentApp.Attribute.FONT_SIZE] = styles[i][j].getFontSize();
docStyles[DocumentApp.Attribute.BOLD] = styles[i][j].isBold()

table.getRow(i).getCell(j).setAttributes(docStyles);
}
}
}
  1. 运行脚本!
  2. 设计您希望用户运行它的方式,并可能将其设置为一个插件。虽然这超出了这个问题的范围。

引用资料

关于google-apps-script - 如何将表从电子表格复制到 Google 文档 `link to Spreadsheet`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64606458/

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