部分 CellFeed 负载
Partial CellFeed load
大家新年快乐
目前,我正在使用以下默认方式访问和加载 Google 表格工作表:
URL metafeedUrl = new URL(SPREADSHEET_URL);
SpreadsheetEntry spreadsheet = service.getEntry(metafeedUrl, SpreadsheetEntry.class);
URL cellFeedUrl = ((WorksheetEntry) spreadsheet.getWorksheets().get(0)).getCellFeedUrl();
// Get entries as cells
feed = (CellFeed) service.getFeed(cellFeedUrl, CellFeed.class);
然后我使用它,等等。一切正常。
问题:
我正准备部署该应用程序并使其与包含数百行(如果不是数千行)单元格的工作表一起使用。对我来说,唯一相关的行通常是底部的 100-200 行。
有没有办法部分加载 CellFeed,最好是从下到上? API有提供这样的方式吗?
我不知道任何 CellFeed,但您可以创建一个 HTML 提要,从任何电子表格中检索许多 ROWS,然后处理它 HTML,这对您有用吗?检索信息时的目标是什么?
例如
Code.gs
function doGet() {
return HtmlService.createTemplateFromFile("form").evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function getLastLines( numLines, ssId, sheetName ){
var sheet = SpreadsheetApp.openById(ssId).getSheetByName(sheetName);
return JSON.stringify(sheet.getRange(sheet.getLastRow() - numLines, 1, numLines, sheet.getLastColumn()).getValues());
}
在form.html
<div id="arrayPlace"></div>
<script>
function changeDiv( res ){
document.getElementById("arrayPlace").innerHTML = res;
}
function getUrlParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
var numLines = getUrlParameter("numLines");
var ssId = getUrlParameter("ssId");
var sheetName = getUrlParameter("sheetName");
google.script.run.withSuccessHandler( changeDiv ).getLastLines( numLines, ssId, sheetName );
</script>
而 URL 将具有附加参数:
查看 API 本身,您可以使用单元格提要或列表提要来完成。
在单元格提要中,查看 https://developers.google.com/google-apps/spreadsheets/#fetching_specific_rows_or_columns
你可以在那里指定要获取的 minimum/maximum row/columns,那里还有一个 java 示例。
获取数据的更有效方法是行提要,因为它在 return:
https://spreadsheets.google.com/feeds/list/[=15= 中发送较少的字节]
使用未记录的“start-index”参数,因此它仅从该行开始读取。
我使用它并为 "old" 和 "new" 工作表工作。
第一次您需要获取所有行(或尝试某种二进制查找以查找电子表格的最后一行)。
我没有使用 java api 库,它可能不允许使用未记录的参数。您始终可以直接从 java 或任何语言执行 url "get",并通过 https 直接使用电子表格 api。
我很久以前从这里得到这个提示:
https://groups.google.com/forum/#!topic/google-spreadsheets-api/dSniiF18xnM
并将其用于此 github 项目(java脚本 ajax 调用示例)
https://github.com/zmandel/Plus-for-Trello/blob/master/source/sql.js
大家新年快乐
目前,我正在使用以下默认方式访问和加载 Google 表格工作表:
URL metafeedUrl = new URL(SPREADSHEET_URL);
SpreadsheetEntry spreadsheet = service.getEntry(metafeedUrl, SpreadsheetEntry.class);
URL cellFeedUrl = ((WorksheetEntry) spreadsheet.getWorksheets().get(0)).getCellFeedUrl();
// Get entries as cells
feed = (CellFeed) service.getFeed(cellFeedUrl, CellFeed.class);
然后我使用它,等等。一切正常。
问题:
我正准备部署该应用程序并使其与包含数百行(如果不是数千行)单元格的工作表一起使用。对我来说,唯一相关的行通常是底部的 100-200 行。
有没有办法部分加载 CellFeed,最好是从下到上? API有提供这样的方式吗?
我不知道任何 CellFeed,但您可以创建一个 HTML 提要,从任何电子表格中检索许多 ROWS,然后处理它 HTML,这对您有用吗?检索信息时的目标是什么? 例如
Code.gs
function doGet() {
return HtmlService.createTemplateFromFile("form").evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function getLastLines( numLines, ssId, sheetName ){
var sheet = SpreadsheetApp.openById(ssId).getSheetByName(sheetName);
return JSON.stringify(sheet.getRange(sheet.getLastRow() - numLines, 1, numLines, sheet.getLastColumn()).getValues());
}
在form.html
<div id="arrayPlace"></div>
<script>
function changeDiv( res ){
document.getElementById("arrayPlace").innerHTML = res;
}
function getUrlParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
var numLines = getUrlParameter("numLines");
var ssId = getUrlParameter("ssId");
var sheetName = getUrlParameter("sheetName");
google.script.run.withSuccessHandler( changeDiv ).getLastLines( numLines, ssId, sheetName );
</script>
而 URL 将具有附加参数:
查看 API 本身,您可以使用单元格提要或列表提要来完成。
在单元格提要中,查看 https://developers.google.com/google-apps/spreadsheets/#fetching_specific_rows_or_columns
你可以在那里指定要获取的 minimum/maximum row/columns,那里还有一个 java 示例。
获取数据的更有效方法是行提要,因为它在 return:
https://spreadsheets.google.com/feeds/list/[=15= 中发送较少的字节]
使用未记录的“start-index”参数,因此它仅从该行开始读取。
我使用它并为 "old" 和 "new" 工作表工作。
第一次您需要获取所有行(或尝试某种二进制查找以查找电子表格的最后一行)。
我没有使用 java api 库,它可能不允许使用未记录的参数。您始终可以直接从 java 或任何语言执行 url "get",并通过 https 直接使用电子表格 api。
我很久以前从这里得到这个提示:
https://groups.google.com/forum/#!topic/google-spreadsheets-api/dSniiF18xnM
并将其用于此 github 项目(java脚本 ajax 调用示例)
https://github.com/zmandel/Plus-for-Trello/blob/master/source/sql.js