在初始查询/表格绘制中仅拉取一列Google电子表格

时间:2012-08-27 19:13:00

标签: javascript javascript-events google-docs google-docs-api

好的,我已经尝试过搜索这个,并且在这里没有找到任何类似的问题。

我可能错过了一些明显的东西 - 我真的是一个网页设计师,被要求做我从未学过的编程......

基本上,我的用户选择查询工作正常,请参阅此处:http://umbc.edu/_bwtech/api2.html

但是当页面首次加载时,它会加载我的所有表列 - 但我只想让它拉出第一列。

我以为我在这里工作了:http://umbc.edu/_bwtech/api6.html 但随后用户查询不再有效。

如何只绘制一列而不会失去对用户所选查询的整个表中数据的访问权限?

如果我在这里复制代码会更容易,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了!

我只需要移动我的位置:

//应用查询语言语句。     query.setQuery('SELECT A');

out of sendAndDraw函数。

最终的JS如下:

var isFirstTime = true;
var options = {'showRowNumber': true};
var data;
var queryInput;

// To see the data that this visualization uses, browse to
// http://spreadsheets.google.com/pub?key=rYQm6lTXPH8dHA6XGhJVFsA
var query = new google.visualization.Query(
    'https://docs.google.com/a/umbc.edu/spreadsheet/ccc?key=0Akd-rqu1ZR70dDYxUEtFdGVadENqN09kT01pdklRbXc&pli=1#gid=0');

 // Apply query language statement.
query.setQuery('SELECT A');

function sendAndDraw() {
  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }
  data = response.getDataTable();
  var table = new google.visualization.Table(document.getElementById('querytable'));
  table.draw(data, {'showRowNumber': false});
  if (isFirstTime) {
  init();
  }
}

function setQuery(queryString) {
  // Query language examples configured with the UI
  query.setQuery(queryString);
  sendAndDraw();
  queryInput.value = queryString;
}



google.setOnLoadCallback(sendAndDraw);

function init() {
  isFirstTime = false;
  (new google.visualization.Table(document.getElementById('table'))).draw(data, options);
  queryInput = document.getElementById('display-query');
}

function setQueryFromUser() {
  setQuery(queryInput.value);
}