2016-10-08 94 views
0

我想解决以下代码(主要问题是,我无法获得范围显示),我已经包含一个日志命令显示正在打印出。当我运行doGet()并转到View> Logs时,它会显示:“[16-10-07 17:31:19:145 EDT] number:Range”问题与控制台日志谷歌应用程序脚本

sheet.getRange(“H1:DE1” )是指具有日期的行的一部分。它不应该列出该行的内容吗?

function doGet() { 

// The code below opens a spreadsheet using its id and logs the name for it. 
// Note that the spreadsheet is NOT physically opened on the client side. 
// It is opened on the server only (for modification by the script). 
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1aCXXXXXXXXXXXXw61H6VuigRf6YykW8O6A0WWmG46VO7ijI/edit#gid=1673918325'); 

Logger.log(ss.getName());

var sheet = ss.getSheets()[1]; 
var range = sheet.getRange("H1:DE1"); 
Logger.log('number for you: %s', range); 

// Calling this method with "true" sets the first line to be the title of the axes 
var datatable = range.getDataTable(true); 

// Note that this doesn't build an EmbeddedChart, so we can't just use 
// Sheet#insertChart(). If we want to do that, we should use 
// sheet.newChart().addRange() instead. 
var chart = Charts.newBarChart() 
.setDataTable(datatable) 
.setOption("title", "Your Title Here") 
.build(); 

var app = UiApp.createApplication(); 
app.add(chart); 
ss.show(app); 


} 

有谁能提醒?

回答

1

您不能以这种方式打印范围对象。相反,你必须写range.getRow()range.getColumn()。请注意,您有多种获得range对象的函数。

0

范围对象不包含图纸值。为了让他们使用下列任一:

values = range.getValues(); // gets internal values 
values = range.getDisplayValues(); // gets displayed values 

在应用程序脚本来修复错误的最好方法是使用内置的调试器(不是Logger对象,不执行成绩单)和断点,像这样的:

  1. 在脚本编辑器顶栏,发现下拉菜单并选择要调试
  2. 设置断点功能:点击一个行的索引,你想在(假设是暂停越野车)
  3. 单击顶部栏中的错误图标在调试模式下运行脚本直到指定的断点
  4. 在打开的选项卡中检查您的变量
  5. 逐行扫描脚本行,方法是单击步入,退出并跳过按钮(在脚本编辑顶部吧)