使用javascript检索Google电子表格中的行数

时间:2013-12-30 22:19:05

标签: javascript google-apps-script row google-sheets spreadsheet

我的网页基本上需要一个javascript方法来计算Google电子表格中有多少行(它用作表单的响应表)。我一直在网上搜索关于如何将Google Spreadsheets放入数据库的简单教程,但我想知道是否有更简单的方法来做到这一点。我在Google Scripts中没有太多经验,但我需要的是一种使用优选的ajax或类似的JavaScript方法可以读取电子表格的方法吗?

分辨 感谢Srik的建议,我也找到了类似/更简单的方法。原来有一个名为TableTop.js的javascript库,它允许人们在不编写Apps脚本的情况下轻松完成此操作。这是我需要的所有代码(使用github上的库):

<script type="text/javascript" src="tabletop-master/src/tabletop.js"></script>
    <script type="text/javascript">
      window.onload = function() { init() };

      var public_spreadsheet_url = 'https://docs.google.com/spreadsheet/pub?key=SPREADSHEET_ID&single=true&gid=1&output=html';

      function init() {
        Tabletop.init( { key: public_spreadsheet_url,
                         callback: showInfo,
                         simpleSheet: true } );
      }

      function showInfo(data) {
        // data comes through as a simple array since simpleSheet is turned on

document.getElementById("food").innerHTML=data.length + " Sold!";
      }

    </script>

2 个答案:

答案 0 :(得分:1)

要检索Google电子表格中的行数,请使用以下命令:

var ss = SpreadsheetApp.openById("1qNCf0wKl................");
var sheet = ss.getSheetByName("sheet_name");
var number = sheet.getMaxRows().toString();
var number = number.replace(".0","");
Logger.log(number);

为了对电子表格具有读取权限,以下链接中提供的指导已足够:

Query Google Spreadsheet with URL Parameters

例如,如果要在电子表格中获取所有带有单词“ budget”的单元格,请使用以下脚本:

var id = "1qNCf0wKlx1RF......";
var column = "A";
var query = "budget";
var url = "https://docs.google.com/spreadsheets/d/"+id+"/gviz/tq?tq=SELECT%20*%20where%20"+column+"%20contains%20%22"+query+"%22";
var text = UrlFetchApp.fetch(url).getContentText().toString();
Logger.log(text);

为此,必须先发布电子表格。检索“预算”行后,必须对文本进行格式化,但这是另一个问题。

答案 1 :(得分:0)

这是你可以做的事情

使用ContentService编写一个简单的应用程序脚本,该脚本将返回包含电子表格中行数的JSON(以及您需要的任何其他信息)。要获取行数,可以使用getLastRow()函数

将您的脚本发布为服务(Web应用程序)并从您的JS代码发出AJAX调用。