Google脚本:如何通过电子邮件发送Tablechart?

时间:2018-10-21 20:44:27

标签: email google-apps-script google-visualization

我正在用Google Script创建一个表格,我想通过电子邮件发送它。

这是我的代码

var data = Charts.newDataTable()
      .addColumn(Charts.ColumnType.STRING, 'Month')
      .addColumn(Charts.ColumnType.NUMBER, 'In Store')
      .addColumn(Charts.ColumnType.NUMBER, 'Online')
      .addRow(['January', 10, 1])
      .addRow(['February', 12, 1])
      .addRow(['March', 20, 2])
      .addRow(['April', 25, 3])
      .addRow(['May', 30, 4])
      .build();

  var chart = Charts.newTableChart()
      .setDataTable(data)
      .enableSorting(true)
      .build();

  MailApp.sendEmail({
    to: "me@gmail.com",
    subject: "Test",
    htmlBody: "inline Google Logo<img src='cid:inImage'> images! <br>",
    inlineImages:
      {
        inImage: chart.getBlob().setContentType('image/png'),
      }
  });

代码在chart.getBlob().setContentType('image/png')上给出以下错误消息:

  

“很抱歉,发生服务器错误。请稍候,然后重试。”

有人知道怎么了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

此修改如何?

发件人:

var chart = Charts.newTableChart()
    .setDataTable(data)
    .enableSorting(true)
    .build();

收件人:

var chart = Charts.newTableChart()
    .setDataTable(data)
    .enableSorting(true)
    .setDimensions(640, 480) // Added
    .build();

它使用setDimensions()设置图表的大小。

注意:

  • 您也可以使用chart.getAs('image/png')代替chart.getBlob().setContentType('image/png')

参考:

如果这不是您想要的,请告诉我。我想修改它。