Какова ожидаемая семантика данных листа? Должны ли нулевые значения быть возвращены?
У меня есть лист с 18 столбцами и 137 строками. Некоторые из столбцов пусты. Когда я выполняю вызов get sheet (я использую C# SDK), возвращаемые данные имеют следующую структуру, которая кажется мне аномальной...
Столбцы --- 19 (RowID прикрепляется в конце списка)
Строки --- 137 (хорошо), но когда я проверяю количество ячеек в строках, я получаю различные числа: 18, 18, 17, 16, 18. Кажется, что ячеек отбрасывает нуль-значимые ячейки. Это намеренно, чтобы отбросить нулевые клетки? Если так, то почему он не всегда сбрасывает нулевые ячейки? Немного странно, что количество ячеек не отражает количество столбцов.
Единственный способ обойти это - сопоставить с помощью ColumnId, поскольку нет гарантии, что для каждой строки будет возвращено ровно 18 ячеек.
1 ответ
Похоже, чтобы отбросить нулевые ячейки. Это намеренно, чтобы отбросить нулевые клетки?
То есть правильные ячейки, которые никогда не были затронуты пользователем, не отправляются через API. Такой подход уменьшит полезную нагрузку и будет полезен для таких клиентов, как мобильные.
Если так, то почему он не всегда сбрасывает нулевые ячейки?
Он всегда удалит пустые ячейки (ячейки, которые не были затронуты пользователем).
Однако есть случай, когда возвращаются пустые данные ячейки. Это произойдет, когда пользователь добавляет текст в ячейку, сохраняет лист и затем удаляет текст. Теперь будет казаться, что ячейка пуста, но мы все еще храним историю для этой ячейки, поэтому она не является пустой или нетронутой ячейкой.
Единственный способ обойти это - сопоставить с помощью ColumnId, поскольку нет гарантии, что для каждой строки будет возвращено ровно 18 ячеек.
Если вам нужно, чтобы ячейка соответствовала точному столбцу (или позиции столбца), мы рекомендуем использовать идентификатор столбца в качестве ключа.