Google sheet API中的Python图表比例

j5fpnvbx  于 2023-11-20  发布在  Python
关注(0)|答案(2)|浏览(128)

我能够通过使用Python创建图表到Google工作表,但我找不到如何将垂直轴比例设置为柱形图的对数。可以手动使用图形编辑器,但我不知道如何使用Python程序做同样的事情。提前Thnaks寻求任何帮助。

von4xj4u

von4xj4u1#

问题及解决方法:

不幸的是,在当前阶段,似乎无法通过Sheets API修改柱形图的垂直轴的比例。因此,将此报告给Google问题跟踪器作为未来的请求如何?https://issuetracker.google.com/
但是,幸运的是,当使用Google Apps Script时,它可以实现。在这个答案中,作为当前的解决方案,我想建议使用Google Apps Script和Python来实现您的目标。
在此解决方案中,垂直轴的比例是使用部署为Web应用的Google Apps脚本修改的。此脚本可以通过Python脚本运行。

用法:

1.新建Google Apps Script项目。

Web Apps的示例脚本是Google Apps脚本。请创建Google Apps脚本的项目。
如果你想直接创建它,请访问https://script.new/。在这种情况下,如果你没有登录到谷歌,登录屏幕打开。请登录到谷歌。通过这个,谷歌应用程序脚本的脚本编辑器打开。

2.示例脚本。

请将以下脚本复制并粘贴到已创建的Google Apps脚本项目中,然后保存该脚本。

function doGet(e) {
  const { spreadsheetId, chartId } = e.parameter;
  const sheets = SpreadsheetApp.openById(spreadsheetId).getSheets();
  const res = sheets.some(sheet => {
    const chart = sheet.getCharts().find(c => c.getChartId() == chartId && c.modify().getChartType() == Charts.ChartType.COLUMN);
    if (chart) {
      sheet.updateChart(chart.modify().asColumnChart().useLogScale().build());
      return true;
    }
    return false;
  });
  return ContentService.createTextOutput(res ? "Done." : `Chart with chart ID ${chartId} and COLUMN chart was not found.`);
}

字符串

3.部署Web应用。

详细信息可以在官方文件中看到。
1.在脚本编辑器上,在脚本编辑器的右上角,请单击“单击部署”->“新建部署”。
1.请点击“选择类型”->“Web App”。
1.请在“部署配置”下的字段中输入有关Web App的信息。
1.* * 执行方式请选择我**。

  • 请为**“访问者”选择“任何人”**。
  • 在这种情况下,用户不需要使用访问令牌。所以请将其用作测试用例。
  • 当然,您也可以使用访问令牌访问您的Web Apps。请查看此报告。
  • 请点击“部署”按钮。
  • 复制Web应用程序的URL。就像https://script.google.com/macros/s/###/exec
    *修改Google Apps脚本时,请将部署修改为新版本,这样修改后的脚本会反映到Web Apps中,请注意这一点。
  • 您可以在报告“Redeploying Web Apps without Changing URL of Web Apps for new IDE“中查看详细信息。

4.测试。

为了测试此Web Apps,请测试以下示例Python脚本。请设置您的Web Apps URL,您的电子表格ID和您的图表ID。图表ID可以通过"Method: spreadsheets.get"检索。

import requests

url = "https://script.google.com/macros/s/###/exec"
url += "?spreadsheetId=###&chartId=###"
res = requests.get(url)
print(res.text)

  • 如果您的Web Apps已正确部署,并且电子表格ID和图表ID为有效值,则运行此Python脚本时,柱形图的垂直轴的比例将更改为对数比例。
    *出现错误时,请重新确认Web Apps的设置。

参考资料:

jv2fixgn

jv2fixgn2#

我有另一个问题,当我试图改变这样的格式。没有效果。其他setOptions正在运行,但不是格式。任何想法?

function doGet(e) {
  const { spreadsheetId, chartId } = e.parameter;
  const sheets = SpreadsheetApp.openById(spreadsheetId).getSheets();
  const res = sheets.some(sheet => {
    const chart = sheet.getCharts().find(c => c.getChartId() == chartId && c.modify().getChartType() == Charts.ChartType.COLUMN);
    if (chart) {
      sheet.updateChart(chart.modify().setOption("vAxis", {format: "currency"}).build());
      return true;
    }
    return false;
  });
  return ContentService.createTextOutput(res ? "Done." : `Chart with chart ID ${chartId} and COLUMN chart was not found.`);
}

字符串

相关问题