Надстройки Office предоставляют отличный способ расширить функциональность приложений Microsoft Office. Одним из распространенных требований к надстройкам является размещение области задач в левой части окна вместо правой стороны по умолчанию. В этой статье мы рассмотрим несколько методов достижения этой цели и приведем примеры кода для каждого подхода.
Метод 1: стилизация CSS
Панель задач в надстройке Office по сути представляет собой HTML-фрейм iframe, встроенный в окно приложения. Применяя стили CSS, мы можем манипулировать расположением панели задач. Вот пример:
/* styles.css */
#taskpane {
position: absolute;
left: 0;
top: 0;
width: 300px; /* adjust as needed */
height: 100%; /* adjust as needed */
}
// taskpane.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<!-- Task pane content goes here -->
</body>
</html>
Метод 2: API JavaScript для Office
API JavaScript для Office предоставляет набор методов и свойств для взаимодействия с приложениями Office. Мы можем использовать метод displayDialogAsync, чтобы открыть настраиваемое диалоговое окно в качестве панели задач и разместить его в левой части окна. Вот пример:
Office.initialize = function() {
// Register event handlers and other initialization code
};
function openTaskPane() {
Office.context.ui.displayDialogAsync('taskpane.html', { width: 300, height: 500, displayInIframe: true, left: 0, top: 0 });
}
Метод 3: изменение XML-манифеста
Файл манифеста надстройки Office позволяет нам настраивать различные параметры надстройки, включая положение панели задач. Изменяя XML-манифест, мы можем указать желаемую позицию. Вот пример:
<!-- manifest.xml -->
<OfficeApp>
<!-- Other manifest configurations -->
<Hosts>
<Host xsi:type="MailHost">
<!-- Other host configurations -->
<DesktopFormFactor>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<!-- Other extension point configurations -->
<CustomPane>
<SourceLocation resid="taskpaneUrl" />
<Position>Left</Position>
</CustomPane>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
</OfficeApp>