【发布时间】:2020-02-01 15:45:31
【问题描述】:
我已经向自己证明,我可以使用以下代码将文本插入到 Google Docs 文档中:
function appendToDocument() {
let offset = 12;
let updateObject = {
documentId: 'xxxxxxx',
resource: {
requests: [{
"insertText": {
"text": "John Doe",
"location": {
"index": offset,
},
},
}],
},
};
gapi.client.docs.documents.batchUpdate(updateObject).then(function(response) {
appendPre('response = ' + JSON.stringify(response));
}, function(response) {
appendPre('Error: ' + response.result.error.message);
});
}
我的下一步是使用 api 创建一个完整的、复杂的文档。我对我需要在文档中维护位置的事实感到震惊,就像这样
new Location().setIndex(25)
我通过阅读此https://developers.google.com/docs/api/how-tos/move-text 来告知自己这一观点
我尝试创建的文档非常动态且非常复杂,将编码挑战交给 api 用户而不是 api 设计者来跟踪索引值似乎很奇怪。
有没有一种方法或更高级别的 api,可以让我在没有这种内务管理的情况下构建文档?
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。关于
Is there an approach, or a higher level api, that allows me construct a document without this kind of house keeping?,我无法理解。我能问一下你的目标吗?我认为,当我能够正确地看到您的目标愿景时,考虑解决方案和解决方法可能会有所帮助。 -
当然@Tanaike。我想编写一个软件来创建一个新的谷歌文档,插入一个包含许多行和单元格的复杂表格,其中可能包含一些图像、一些文本等。我不喜欢我需要跟踪的事实当我插入表格、表格行、表格单元格、图像、文本、文本、文本、表格行、表格单元格等时,所有位置的索引。我想找到一个可以为我做这些的 api。
-
感谢您的回复。从您的回复中,您希望创建一个表格,其中包含 Google Document with Docs API 的值。你想在不使用每个元素的索引的情况下实现这一点。我可以这样理解。如果我的理解是正确的,不幸的是,在当前阶段,我认为在 Docs API 中没有直接实现您的目标的方法。因此,作为一种解决方法,如何将 append 方法与 Google Apps 脚本一起使用?在这种情况下,使用Web Apps,并且可以通过请求运行脚本。如果这不是您想要的方向,我很抱歉。
-
不用担心@Tanaike。我最初的实验是使用 Google App Script api,我发现它可以工作。但我需要在服务器上创建我的文档,无需人工参与。所以我转向了 Google Docs api。男孩让我失望了。我正在构建一个为我管理索引值的谷歌文档模型,但提供了一个附加样式 api。不得不这样做只是一种痛苦。
-
this 对您有帮助吗? “通过向后写来简化问题。 为了避免必须预先计算这些偏移更改,请将插入排序为“向后写”:首先在编号最高的索引处进行插入,每次插入都从头开始。这种排序确保每次写入的偏移量都不受前面的影响。”顺便说一句,您可以在 Apps 脚本中设置一个服务帐户,这样您就可以在没有人工干预的情况下使用它。
标签: google-docs-api