Как я могу экспортировать атрибуты ячеек в выбранном диапазоне - PullRequest
1 голос
/ 21 апреля 2020

РЕДАКТИРОВАТЬ: Мой текущий код можно найти здесь: https://gist.github.com/prxzr/bf26bb04b6d7efdeb2c30b8afcb573ee

EDIT2: Причина сбоя Excel была в getCellProperties() требует, чтобы объект со свойствами был извлечен как параметр. Я чувствую себя настолько глупо.

Контекст: я создаю Addin для Excel, используя новейший API Office Javascript.

По сути, я хочу извлечь и преобразовать в JSON все атрибуты выбранного диапазона. Это означает получение границ, шрифтов, значений ячеек и т. Д. c .. Я видел, что есть некоторые функции, которые позволяют мне получить некоторые свойства для всего диапазона, однако некоторые функции возвращают нуль, если все ячейки в выбранный диапазон не имеет одинаковых значений для заданного атрибута.

До сих пор я думал об использовании selectedRange.getCellProperties();, где selectedRange - текущий выбор пользователя на листе в каждой ячейке в диапазоне, но по какой-то причине Excel вылетает всякий раз, когда я пытаюсь использовать эту функцию. Таким образом, я могу думать только о том, чтобы извлечь эти атрибуты вручную для каждой ячейки в выбранном диапазоне, используя al oop внутри al oop. Это, конечно, не оптимально для производительности, и я уверен, что есть лучшее решение.

Как я мог go сделать это?

Спасибо, что нашли время помочь !

Ответы [ 3 ]

1 голос
/ 21 апреля 2020

Спасибо за сообщение об этой проблеме. Я могу повторить cra sh после удаления параметра из getCellProperties. Сбой Excel не подходит, я зарегистрировал внутреннюю ошибку для отслеживания.

0 голосов
/ 27 апреля 2020

(- Я хотел бы добавить комментарий под ответом Рэймонда, но у меня не было достаточно репутации, я должен опубликовать новый ответ :()

Как вы уже знаете, cra sh причина selectedRange.getCellProperties (), как насчет того, чтобы убедиться, что параметр не равен NULL? getCellProperties - самый удобный способ, который я знаю для вашего сценария.

0 голосов
/ 21 апреля 2020

Из соображений качества, может быть, вы можете попробовать getRowProperties API? Как вы можете получить все свойства подряд. и вы можете конвертировать свойства строки в JSON строку. Производительность может быть лучше.

Документ можно найти по адресу https://docs.microsoft.com/en-us/javascript/api/excel/excel.range?view=excel-js-preview#getrowproperties -rowpropertiesloadoptions-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...