C#Google Sheets API-删除行

问题描述 投票:-3回答:1

我已经搜索了整个互联网上的所有内容:),但没有找到解决方案。我可以通过C#添加新行,更新旧行并在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();
    }

我已经搜索了整个互联网上的所有内容:),但没有找到解决方案。我可以通过C#添加新行,更新旧行并在Google表格中做很多事情,但是我无法删除...

c# google-sheets-api delete-row
1个回答
0
投票

我检查了您在此处提供的链接,但没有一个解决了问题。例如这个:

© www.soinside.com 2019 - 2024. All rights reserved.