【发布时间】:2016-01-27 05:45:34
【问题描述】:
我每晚都会向我自己的 gmail 地址发送一份报告。突然之间,大约一周后,图表的图像变成了空白。只有一张图表。
function sendReport() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("monthData");
var charts = sheet.getCharts();
if(charts.length > 0) {
var template = HtmlService.createTemplateFromFile("reportTemplate");
template.date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd-MM-y");
var areaBlob = charts[0].getBlob().getAs('image/png').setName("areaBlob");
MailApp.sendEmail({ to:"olivier.dejonge@gmail.com",
subject: "Trend uren declarabel",
htmlBody: template.evaluate().getContent(),
inlineImages: {
chart: areaBlob
}
});
}else {
Browser.msgBox("Kon report niet verzenden omdat ik chart niet kon vinden");
}
}
代码.gs
<html>
<h1>Dagelijkse Trend Declarabele uren: <?= date ?></h1>
<p>
<img src="cid:chart" />
</p>
</html>
reportTemplate.html
在电子表格中看起来不错
在电子邮件中它不存在!?
更新
当我使用电子表格的“updateUren”函数更新数据时,图表也保持空白。
function updateUren()
{
var activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var startYear = activeSpreadSheet.getSheetByName("settings").getRange(2,1,1,1).getValue();
var endYear = activeSpreadSheet.getSheetByName("settings").getRange(2,2,1,1).getValue();
var calendars = activeSpreadSheet.getSheetByName("settings").getRange(2,3,1,1).getValue().split("/");
var hourPriceArr = activeSpreadSheet.getSheetByName("settings").getRange(2,4,1,1).getValue().split("/");
var myPrice = hourPriceArr[0].split(",");
var myHourPrice = [];
for(var i=0 ; i < myPrice.length; i++) {
var orgPrice = myPrice[i].split(":");
myHourPrice.push(orgPrice)
}
var vasilesPrice = hourPriceArr[1].split(",");
var vasileHourPrice = [];
for(var i=0 ; i < vasilesPrice.length ; i++) {
vasileHourPrice.push(vasilesPrice[i].split(":"))
}
var hourHash = [{hourPrice:myHourPrice, hirePrice:[]}, {hourPrice:myHourPrice, hirePrice:vasileHourPrice}]
var startDate = new Date();
var details=[];
for(var i in calendars)
{
startDate = collectEvents_(details, calendars[i], startYear, endYear, startDate, hourHash[i].hourPrice, hourHash[i].hirePrice);
}
/*month*/
var monthDetails = getMonthDetails_(details);
sheet = activeSpreadSheet.getSheetByName("monthData");
var range = sheet.getRange("A2:E")
range.clear();
sheet.getRange(2, 1, monthDetails.length, 5).setValues(monthDetails);
/*all*/
details.unshift(["title", "date", "start", "end", "duration", "profit"]);
sheet = activeSpreadSheet.getSheetByName("data");
sheet.clear();
sheet.getRange(2, 1, details.length, 6).setValues(details);
}
只有当我在浏览器中刷新页面时,图表才会再次显示它的图表。
【问题讨论】:
标签: google-apps-script google-sheets