これが、スプレッドシート API に近づく唯一の方法だと思います。これは完全なコードではなく、私が書いた関数内にありますが、ドリフトが発生します... C#にあります:
例での作業:
--row 1 = header row
--row 2 = data
--row 3 = data
--row 4 = totally blank
--row 5 = data
--row 6-100 = totally blank
英語で:
ワークシートの ListFeed.Entries.Count を取得します。ListFeeds はヘッダー行を無視するため、この例ではカウントは「2」になります。
セルを循環するために、ワークシートの CellFeed を取得します。CellFeeds DO にはヘッダー行が行 1 として含まれるため、この例では、CellFeed の観点から、最初の空白行は行 4 である必要があります (header=1、次に 2 つのデータ行、次に ListFeed セットを終了する最初の空白行)。 、したがって、5行目以降のセルを調べて、空でないセルを探す必要があります。
foreach (WorksheetEntry entry in wsFeed.Entries)
{
//Get the worksheet CellFeed:
CellQuery cellQuery = new CellQuery(entry.CellFeedLink);
CellFeed cellFeed = service.Query(cellQuery);
//Get the worksheet ListFeed to compare with the CellFeed:
AtomLink listFeedLink = entry.Links.FindService(
GDataSpreadsheetsNameTable.ListRel, null
);
ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
//need to have service object already created for this... see API docs
ListFeed listFeed = service.Query(listQuery);
//Now to check if there is data after the ListFeed
//set which would indicate a blank line in the data set (not allowed)
foreach (CellEntry cell in cellFeed.Entries)
{
//start looking in cells in the row after what would be the first blank row
if (cell.Row > listFeed.Entries.Count + 2)
{
if (cell.Value != "")
{
MessageBox.Show("ERROR: There appears to be a blank row +
in the middle of the data set in worksheet: " +
entry.Title.Text + ". Completely blank rows " +
"are not allowed in between data rows. Each row " +
"within the data set must have at least one " +
"value in at least one cell. There CAN and " +
"should be blank rows after the data set at " +
"the bottom of the worksheet.");
return false;
}
}
}
}