Устранение неполадок надстроек Excel
В этой статье рассматриваются проблемы, уникальные для Excel. Используйте средство обратной связи в нижней части страницы, чтобы предложить другие проблемы, которые можно добавить в статью.
Ограничения API при переключениях активной книги
Надстройки для Excel предназначены для работы с одной книгой одновременно. Ошибки могут возникнуть, когда книга, которая отделена от книги, выполняющей надстройку, получает фокус. Это происходит только в том случае, если определенные методы вызываются при изменении фокуса.
Этот параметр книги влияет на следующие API.
API JavaScript для Excel | Возникла ошибка |
---|---|
Chart.activate |
GeneralException |
Range.select |
GeneralException |
Table.clearFilters |
GeneralException |
Workbook.getActiveCell |
InvalidSelection |
Workbook.getSelectedRange |
InvalidSelection |
Workbook.getSelectedRanges |
InvalidSelection |
Worksheet.activate |
GeneralException |
Worksheet.delete |
InvalidSelection |
Worksheet.gridlines |
GeneralException |
Worksheet.showHeadings |
GeneralException |
WorksheetCollection.add |
GeneralException |
WorksheetFreezePanes.freezeAt |
GeneralException |
WorksheetFreezePanes.freezeColumns |
GeneralException |
WorksheetFreezePanes.freezeRows |
GeneralException |
WorksheetFreezePanes.getLocationOrNullObject |
GeneralException |
WorksheetFreezePanes.unfreeze |
GeneralException |
Примечание.
Это относится только к нескольким книгам Excel, открытым в Windows или Mac.
Совместное редактирование
Шаблоны для использования с событиями в среде совместного редактирования см. в статье Совместная работа в надстройках Excel. В этой статье также рассматриваются потенциальные конфликты слияния при использовании определенных API, таких как TableRowCollection.add
.
Известные проблемы
События привязки возвращают временные Binding
объекты
Как BindingDataChangedEventArgs.binding, так и BindingSelectionChangedEventArgs.binding возвращают временный Binding
объект, содержащий идентификатор Binding
объекта, вызвавшей событие. Используйте этот идентификатор с BindingCollection.getItem(id)
, чтобы получить Binding
объект, который вызвал событие.
В следующем примере кода показано, как использовать этот временный идентификатор привязки для получения связанного Binding
объекта. В примере прослушиватель событий назначается привязке. Прослушиватель вызывает метод при getBindingId
активации onDataChanged
события. Метод getBindingId
использует идентификатор временного Binding
объекта для получения Binding
объекта, вызвавщего событие.
async function run() {
await Excel.run(async (context) => {
// Retrieve your binding.
let binding = context.workbook.bindings.getItemAt(0);
await context.sync();
// Register an event listener to detect changes to your binding
// and then trigger the `getBindingId` method when the data changes.
binding.onDataChanged.add(getBindingId);
await context.sync();
});
}
async function getBindingId(eventArgs) {
await Excel.run(async (context) => {
// Get the temporary binding object and load its ID.
let tempBindingObject = eventArgs.binding;
tempBindingObject.load("id");
// Use the temporary binding object's ID to retrieve the original binding object.
let originalBindingObject = context.workbook.bindings.getItem(tempBindingObject.id);
// You now have the binding object that raised the event: `originalBindingObject`.
});
}
Формат useStandardHeight
ячейки и useStandardWidth
проблемы
Свойство CellPropertiesFormat
useStandardHeight не работает должным образом в Excel в Интернете. Из-за проблемы в пользовательском интерфейсе Excel в Интернете установка useStandardHeight
свойства в значение true
некорректно вычисляет высоту на этой платформе. Например, стандартная высота 14 изменяется на 14,25 в Excel в Интернете.
На всех платформах свойства CellPropertiesFormat
useStandardHeight и useStandardWidth имеют только значение true
. Установка этих свойств на значение false
не оказывает влияния.
Метод Range getImage
не поддерживается на Excel для Mac
Метод Range getImage в настоящее время не поддерживается в Excel для Mac. Сведения о текущем состоянии см. в статье OfficeDev/office-js Issue No 235 .
Диапазон возвращаемых символов
Методы Worksheet.getRange(address) и Worksheet.getRanges(address) имеют ограничение строки адреса в 8192 символа. При превышении этого ограничения адресная строка усекается до 8192 символов.
Дополнительные материалы
Office Add-ins