如何检测某列是否隐藏?

问题描述 投票:0回答:1

我有一个工作表,其中隐藏了某些数据,我需要确保在隐藏数据时不会显示该数据(隐藏的列会经常更改)。

如何检测哪些列被隐藏?

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

问这个问题后不久,我通过查看对象中的列元数据找到了答案。您可以从工作表中的 GridData 对象获取列元数据。它有一些属性,如 HiddenByFilter、HiddenByUser 和 PixelSize。该代码对我有用,但其他人需要根据自己的需要对其进行修改,例如更改他们正在使用的工作表。

public List<int> GetHiddenColumns(string spreadsheetId, string sheetRange)
{
    List<int> hiddenColumns = new List<int>();

    // Retrieve the sheet properties to determine column visibility
    var sheetRequest = _sheetsService.Spreadsheets.Get(spreadsheetId);
    sheetRequest.Ranges = new[] { sheetRange };
    sheetRequest.IncludeGridData = true;
    var sheetResponse = sheetRequest.Execute();

    if (sheetResponse.Sheets != null && sheetResponse.Sheets.Count > 0)
    {
        var sheetProperties = sheetResponse.Sheets[0];

        var rowData = sheetProperties.Data.FirstOrDefault();

        for (int columnIndex = 0; columnIndex < rowData.ColumnMetadata.Count; columnIndex++)
        {
            var columnMetadata = rowData.ColumnMetadata[columnIndex];
            if (columnMetadata.HiddenByUser == true) hiddenColumns.Add(columnIndex);
        }
    }

    return hiddenColumns;
}
© www.soinside.com 2019 - 2024. All rights reserved.