我已经搜索了整个互联网上的所有内容:),但没有找到解决方案。 我可以通过C#在Google表格中添加新行,更新旧行并在Google表格中做很多事情,但是我无法在Google表格中删除行...有人可以帮忙吗?
[编辑]
好的,我终于找到了如何删除行...
因此,我要做的是首先构建要删除的所有索引的列表。完成此操作后,我必须构建要删除的索引对值列表,其中索引的开始和结束要删除,但最后我必须添加+1,因为似乎开始和结束并没有删除,只有两者之间的内容才删除。
最后,我不得不从头到尾循环循环密钥对列表,这删除了行...
要删除的代码在这里。也许这会帮助正在寻找如何删除Google表格中行的其他人:
List<keyvaluepair<int,int>> _listStartEndIndexToDelete = new List<keyvaluepair<int,int>>();
List<int> _tempListOfAllIndex = new List<int>();
for (int i = 1; i <= ValuesInternal.Values.Count() - 1; i++)
{
if (ValuesInternal.Values[i][1] != null && ValuesInternal.Values[i][1].ToString().ToUpper() == "TASK COMPLETE")
{
_tempListOfAllIndex.Add(i);
}
}
for (int rowNumber = 0; rowNumber <= _tempListOfAllIndex.Count() - 1; rowNumber++)
{
int tempStart = _tempListOfAllIndex[rowNumber];
if(rowNumber != _tempListOfAllIndex.Count() - 1)
{
while (_tempListOfAllIndex[rowNumber] + 1 == _tempListOfAllIndex[rowNumber + 1])
{
rowNumber++;
if (rowNumber == _tempListOfAllIndex.Count() - 1) { break; }
}
}
int tempEnd = _tempListOfAllIndex[rowNumber] + 1;
keyvaluepair<int,int> tempPair = new keyvaluepair<int,int>(tempStart,tempEnd);
_listStartEndIndexToDelete.Add(tempPair);
}
for(int keyvaluepair = _listStartEndIndexToDelete.Count()-1; keyvaluepair >= 0; keyvaluepair--)
{
List<Request> deleteRequestsList = new List<Request>();
BatchUpdateSpreadsheetRequest _batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest();
Request _deleteRequest = new Request();
_deleteRequest.DeleteDimension = new DeleteDimensionRequest();
_deleteRequest.DeleteDimension.Range = new DimensionRange();
_deleteRequest.DeleteDimension.Range.SheetId = SheetIDnumberWhereDeleteShouldBeDone;
_deleteRequest.DeleteDimension.Range.Dimension = "ROWS";
_deleteRequest.DeleteDimension.Range.StartIndex = _listStartEndIndexToDelete[keyvaluepair].Key;
_deleteRequest.DeleteDimension.Range.EndIndex = _listStartEndIndexToDelete[keyvaluepair].Value;
deleteRequestsList.Add(_deleteRequest);
_batchUpdateSpreadsheetRequest.Requests = deleteRequestsList;
sheetsService.Spreadsheets.BatchUpdate(_batchUpdateSpreadsheetRequest,SheetIDInternal).Execute();
}