从 Google 电子表格和表格 Api 返回的行数有限
Limited number of rows returned from Google spreadsheet and the Sheets Api
我在 Google 驱动器上有一个 spreadsheet,我从其他应用程序读取了 571 行。我使用 Google.GData.Spreadsheets 2.2.0 库和下面的一段简化代码调用它。
static void Main(string[] args)
{
var certificate = new X509Certificate2("Key.p12", "blahblah", X509KeyStorageFlags.Exportable);
const string user = "blahblah@developer.gserviceaccount.com";
var serviceAccountCredentialInitializer =
new ServiceAccountCredential.Initializer(user)
{
Scopes = new[] { "https://spreadsheets.google.com/feeds" }
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result)
throw new InvalidOperationException("Access token request failed.");
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + credential.Token.AccessToken);
var service = new SpreadsheetsService(null) { RequestFactory = requestFactory };
var query = new ListQuery("https://spreadsheets.google.com/feeds/list/blahblah/1/private/full") ;
var feed = service.Query(query);
// Not all rows 571 rows are returned. Only 369 feed.Entries !?
}
我的问题是,即使我在文档中有 571 行 我也只收到前 369 个条目 - 这是为什么? api 中有多少行的限制 sheet 可以 return?如果是这样,我应该如何处理?
我仔细检查过,uri 指向正确的 spreadsheet 文档,所有行都在文档的第一个 sheet 上。它实际上看起来即使是普通的 http 访问 https://spreadsheets.google.com/feeds/list/blahblah/1/private/full 也不会 return 所有行?
我在这里错过了什么?
原来我在 sheet 中有一个空行,API 之后不会读取新行。
我在 Google 驱动器上有一个 spreadsheet,我从其他应用程序读取了 571 行。我使用 Google.GData.Spreadsheets 2.2.0 库和下面的一段简化代码调用它。
static void Main(string[] args)
{
var certificate = new X509Certificate2("Key.p12", "blahblah", X509KeyStorageFlags.Exportable);
const string user = "blahblah@developer.gserviceaccount.com";
var serviceAccountCredentialInitializer =
new ServiceAccountCredential.Initializer(user)
{
Scopes = new[] { "https://spreadsheets.google.com/feeds" }
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result)
throw new InvalidOperationException("Access token request failed.");
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + credential.Token.AccessToken);
var service = new SpreadsheetsService(null) { RequestFactory = requestFactory };
var query = new ListQuery("https://spreadsheets.google.com/feeds/list/blahblah/1/private/full") ;
var feed = service.Query(query);
// Not all rows 571 rows are returned. Only 369 feed.Entries !?
}
我的问题是,即使我在文档中有 571 行 我也只收到前 369 个条目 - 这是为什么? api 中有多少行的限制 sheet 可以 return?如果是这样,我应该如何处理?
我仔细检查过,uri 指向正确的 spreadsheet 文档,所有行都在文档的第一个 sheet 上。它实际上看起来即使是普通的 http 访问 https://spreadsheets.google.com/feeds/list/blahblah/1/private/full 也不会 return 所有行?
我在这里错过了什么?
原来我在 sheet 中有一个空行,API 之后不会读取新行。