使用 Google Apps 脚本将 Google Sheet 中的图表正确插入到文档中

2023-12-13

我想使用 Google Apps 脚本将图表从电子表格复制到文档中。 插入图表是可行的,但存在 a) 权限和 b) 格式问题。

可以按如下方式插入图表:

var b = d.getBody();
var charts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("charts").getCharts();
for (var i in charts) {
  b.appendImage(charts[i]);
  Logger.log(charts[i].getBlob().getName()); // correct: "chart.png"
}
  • 当我手动复制图表并将其粘贴到文档中时,格式与电子表格中的格式完全相同。
  • 当我使用脚本进行复制时,格式看起来非常奇怪,甚至会导致错误(对于 x 轴上带有日期的折线图,它显示带有文本的图像Data column(s) for axis #1 cannot be of type string)

Top row is manually copied, bottom row is the result of the script. manual and script

第二个相关问题:电子表格需要共享(“知道链接的任何人都可以查看”),否则它会显示图像(正确的名称、宽度、高度等)作为错误消息:User not signed-in. Sign in.

对于如何插入具有正确格式的图表且无需共享电子表格有什么建议吗?


斯特凡为我指明了正确的方向(谢谢!)。 粘贴/保存图像时,渲染的完成方式似乎完全不同。 不同的轴设置、颜色、主题等。

我最终手动创建了图表。例如。对于第一个条形图,以下结果会生成在电子表格和文档中显示相同的图表:

var chart = dest.newChart();
chart
  .setChartType(Charts.ChartType.BAR)
  .addRange(myrange)  
  .setPosition(2,8,0,0)
  .setOption("theme","maximized")
  .setOption("colors",["#3366CC","#FF9900","#DC3912","#109618"])
  .setOption('isStacked', true)
  .setOption('width', 500)
  .setOption('height', 130)
  .setOption('hAxis.viewWindow.max', countActions)
  .setOption('vAxis.gridlines.count', 0)
  .setOption('legend', {position: 'in', textStyle: {fontSize: 12}})

var chart = chart.build();
dest.insertChart(chart);

我还必须更改数据范围,因为似乎无法手动设置以下图表设置。

  • 切换行/列
  • 使用第一行作为标题

为了解决这个问题,我手动转置了电子表格中的范围(=TRANSPOSE(original_range)) 然后让myrange指向该新范围,我添加了一个空列,以便将其用作空标题。

我还没有看过折线图,可能是图表 API 无法像电子表格那样创建时间线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Apps 脚本将 Google Sheet 中的图表正确插入到文档中 的相关文章

  • AdminDirectory.Members.list 授权错误

    我正在尝试使用 Admin SDK 并尝试在 Google 电子表格中列出群组成员 这是我想出的代码 function recordGroupsMembers var ss SpreadsheetApp getActiveSpreadshe
  • 模板化 HTML 脚本中的换行符

    如果我有一个 HTML 文件 test html p p 和一个脚本函数 var t HtmlService createTemplateFromFile test html t str test nstring var content t
  • 通过脚本删除工作表

    我正在执行此代码 function deleteSheets var ss SpreadsheetApp getActiveSpreadsheet var sheets ss getSheets var transp ss getSheet
  • Google App Script ContentService downloadAsFile 不起作用

    我有一个使用 Google App Script 开发的网络应用程序HtmlService并从 html 表单中 使用以下命令填充 Google 驱动器中的 Excel 工作表SpreadsheetApp 另一个部门正在打电话Content
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类
  • 如何从 Google 电子表格中删除项目?

    我通过在脚本编辑器上选择 文件 gt 制作副本 错误地制作了 Google Apps 脚本项目的副本 从那时起 每次我在该项目所属的电子表格屏幕上单击 工具 gt 脚本编辑器 时 我看到显示两个项目 原始项目和复制项目 的屏幕 我需要选择一
  • 如何下载以前保存的 Google Apps 脚本修订版本?

    我仍在尝试从中恢复不知何故 丢失 了 Google Apps 脚本 https stackoverflow com questions 33697789 当我创建脚本的副本以将代码分叉到另一个项目时 我的想法是尝试通过驱动器 API 下载
  • 许多文档引用了一个 Google Apps 脚本 [重复]

    这个问题在这里已经有答案了 我已经通过驻留在 Google 文档中的 Google Apps 脚本创建了一个脚本 我使用该文档作为模板对象 然后将其复制到我使用这些脚本函数的许多 Google 文档中 问题是 每当我编辑该主脚本时 所有子文
  • 清除内容并从另一张纸复制

    我编写了一个脚本 旨在清除 Google Sheets 电子表格的内容并复制并粘贴另一个工作表的内容 需要清除的工作表称为 NEW SHEET 要复制的工作表称为 Database 由于某种原因 该脚本目前无法运行 当我运行它时什么也没有发
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • javascript 对象是否像 Ruby 一样“开放”?

    在 Ruby 中 我可以使用与声明自己的语法相同的语法来添加和修改任何类 对象或方法的功能 因为 Ruby 有 开放类 JavaScript 是这样的吗 举个例子 就我而言 我想更改 Google Apps 脚本处理 URL 对象的方式 以
  • 仅生成一张电子表格的 PDF

    我需要一个只用一张电子表格创建 PDF 的脚本 我目前有一个生成 PDF 的脚本 但它处理整个文件 我无法将这些值复制到另一个文件 因为我需要导出的工作表是带有从另一个工作表中提取的数据的图形 你可以帮帮我吗 谢谢 function myF
  • 通过 Google Apps 脚本发送电子邮件时出现问题

    我有时已经成功地通过 Google Apps 脚本发送电子邮件 但是 当我打开一个新的 Google Workspace 帐户并使用相同的代码将相同的内容发送到同一个接收者时 新帐户不起作用 我收到一条 消息已被阻止 的消息 电子邮件受保护
  • 对于只触及我的工作表的 Google 表格脚本,收到“此应用程序未经验证”

    我正在编写一个 Google Sheets 脚本 我只想访问与 gs 文件关联的同一电子表格中的数据 似乎我应该有权在自己的电子表格中运行脚本 但是每当我运行一个函数时 我都会得到一个This app isn t verified信息 我该
  • 如果单元格包含“否”,则隐藏 Google 表格中的行 - 多张表格

    我正在运行 1 个主电子表格 其中有 4 个产品特定电子表格从中提取信息 如果没有提取相关信息 较小的电子表格将在所有单元格中显示 否 我希望隐藏带有 否 的行 我已经把一些东西拼凑在一起了 这样的作品 但我无法让它在所有 4 张纸上都工作
  • 如何在自定义函数中评估电子表格公式?

    在电子表格中我可以输入 SIN 45 123在一个单元格中 它将被评估 如何在自定义函数中评估电子表格函数 例如 eval 函数的工作原理如下 function myFunc return Sheet eval SIN 45 123 是否可
  • 根据 Google Apps 脚本中的另一个数组过滤数组

    我对 JavaScript 相当陌生 可能需要一些帮助来解决我在处理 Google Apps 脚本时遇到的问题 我打算做的是根据数组过滤数据 该数组是从特定工作表中的特定单元格中获取的 其中包含我不想保留在数据中的字符串元素 换句话说 包含
  • 通过服务帐户使用高级 Google 服务

    我正在使用 Google Apps 脚本并使用一些高级服务 例如 Admin SDK 目录 API 和经销商 API 开发应用程序 看起来这些 API 是由我的 Web 应用程序在访问我的 Web 应用程序的用户上下文中调用的 它是通过 以
  • Apps 脚本列表项 - 制作项目符号而不是编号?

    我可以使用应用程序脚本中的appendListItem将一堆项目作为编号列表添加到谷歌文档中 有什么方法可以将其从编号更改为项目符号吗 你应该能够使用ListItem setGlyphType https developers google
  • 超出 Google 电子表格上的 ImportXML 限制

    我现在陷入了 抓取问题 特别是我想将作者的姓名从网页提取到谷歌电子表格 其实功能 IMPORTXML A2 span class author vcard meta item 正在工作 但是当我增加了要抓取的链接数量后 它就开始无限加载 所

随机推荐

  • Java 电子邮件中的 HTML 格式文本

    try String msg Happy BirthDay Dear b name toUpperCase b Have a Great Day n n Thank You n Seva Development MimeMessage me
  • 在 knit/Sweave 关系中对 R ftable() 输出的值进行着色/突出显示

    我正在生成很多ftable 交叉制表以获得描述性报告 例子 AUS BEL BUL EST FRA GEO GER HUN ITA NET NOR ROM RUS 30 primary 0 06 0 03 0 07 0 03 0 02 0
  • Sympy - 比较表达式

    有没有办法检查两个表达式在数学上是否相等 我期望tg x cos x sin x 输出True 但它输出False 有没有办法与 sympy 进行这样的比较 另一个例子是 a b 2 a 2 2 a b b 2令人惊讶的是还输出False
  • Git mv 无法按预期工作(文件位置错误)

    作为我的任务的一部分 我需要将组件从三个地方整合到一个地方 换句话说 将文件夹 包括许多子文件夹和文件 移动到一个现有文件夹 我正在使用它git mv 但问题是 一旦我尝试合并 使用git merge 非合并分支到合并分支 我遇到很多冲突
  • 找到所有三元组 i,j,k 使得 i+j+k=n

    我已经编码了 但这很长 for i in range n 1 for j in range n 1 for k in range n 1 if i j k n 有什么巧妙的方法可以让它跑得更快吗 目前它是 O n 3 这是相当可悲的 有几种
  • jboss中不同war模块之间的会话共享可能吗?

    有没有一种简单的方法可以在jboss中的不同war模块之间共享会话 我有一个在 jboss 中运行的 Grails 应用程序 但想要创建一个新的 Grails war 模块 它的外观和感觉与现有模块相同 但是 不希望用户再次登录 域将是相同
  • 对于 pandas DataFrame 列中的每个唯一值,如何随机选择一定比例的行?

    这里是Python新手 想象一个 csv 文件 如下所示 除了在现实生活中 Person 列中有 20 个不同的名称 每个 Person 有 300 500 行 此外 还有多个数据列 而不仅仅是一个 我想做的是randomly标记每个人行的
  • 如何从 URL Android 将图像设置为图像视图

    我正在尝试从 URL 下载并在我的 imageview 中显示图像 我将动态获取该图像 我已经尝试过这种方式 URL url new URL parsedWeatherResponse getWeatherIconUrl Bitmap bm
  • 如何在半夜删除mysql表中的数据?

    我有一个 mysql 表 我希望它每天晚上午夜被 清空 我在网上搜索了答案 但没有找到任何对我有帮助的东西 我的想法是使用 javascript 获取当前时间 然后运行 if 语句并查看它是否等于午夜 以及是否执行删除信息的 php 脚本
  • php - 帮助提高这个 youtube 风格的 url 生成器的效率

    经过一番搜索后 我发现这个 youtube 风格的 url 生成器具有加密功能 可以隐藏原始 id 但是我希望提高效率 因为它将被大量使用 到目前为止我已经改进了 20 任何人都可以帮助我进一步改进它 这是原文 function alpha
  • 使用 QSignalMapper

    我尝试制作一个简单的示例来帮助理解 QSignalMapping 的概念如何在 PySide 中工作 我想通过循环迭代来动态创建一系列按钮 当用户按下其中一个按钮时 我可以激活一个方法 为按下的按钮返回适当的标签 from PySide2
  • 从 Excel 运行 Access 查询

    我试图在 Excel 的 Access 中运行查询 然后使用 VBA 中的 ADO 将这些结果拉入 Excel 文档 不幸的是 我无法弄清楚如何运行访问查询 以便将 Excel 工作表的活动单元格中的数据用作访问查询中的条件 我正在运行 E
  • Python 的舍入问题[重复]

    这个问题在这里已经有答案了 可能的重复 Python 浮点数的舍入误差 我在 Python 中遇到了舍入问题 如果我计算 32 50 0 19 6 1749999999999998 但这应该是 6 175 如果我将 6 1749999999
  • 如何在 JavaScript 中添加元标记

    我想添加对于特定页面 但我的页面是在一个页面中呈现的HTML标签 单击不同模板时 只有内容会发生变化 所以我无法添加 in 部分 有什么办法可以添加 using javascript 您可以添加它 var meta document cre
  • 如何使用Flask获取客户端端口?

    我正在尝试使用 Flask 构建一个简单的 torrent 跟踪器 但遇到了一个问题 如果客户在NAPT请求中包含的网络 端口不正确 我想用 Flask 获取客户端连接端口 在 PHP 中像这样的函数 SERVER REMOTE PORT
  • RequestContext - RouteData 不包含操作

    因此 我创建了自己的 ControllerFactory 并且重载了 GetControllerSessionBehavior 以扩展 MVC 行为 为了完成我的自定义工作 我必须对被调用的操作使用反射 然而我偶然发现了一个奇怪的问题 我无
  • 并行继承层次结构真的是一种代码味道吗?

    我不知道如何在实践中避免并行层次结构 例如考虑一个必须在不同级别上创建 保存 编辑笔记的应用程序 它是一个基于 java swing 的应用程序 域层次结构 AbstractNote lt MonthNote lt DayNote lt P
  • 在 Rails 中设置可选字段

    我使用回形针将头像附加到用户身上 效果很好 但当新用户尝试注册时 它会抱怨头像太小且类型不正确 这就是我验证我的头像的方式 validates attachment size avatar less than gt 1 megabytes
  • Java中如何写入文本文件

    我正在用java做一个项目 我需要添加和修改我的 运行时的文本文件 该文件分组在 jar 中 我正在使用 class getResourceAsStream filename 这个方法我们 可以从类路径读取该文件 我想写入同一个文本文件 对
  • 使用 Google Apps 脚本将 Google Sheet 中的图表正确插入到文档中

    我想使用 Google Apps 脚本将图表从电子表格复制到文档中 插入图表是可行的 但存在 a 权限和 b 格式问题 可以按如下方式插入图表 var b d getBody var charts SpreadsheetApp getAct