- •11. Объектная модель Excel
- •11.1. Работа с книгами
- •11.1.1. Создание новой книги
- •11.1.2. Открытие существующей книги
- •11.1.3. Закрытие книг
- •11.1.4. Сохранение открытой книги
- •11.1.5. Получение и установка пути к файлу книги по умолчанию
- •11.1.6. Отображение диалогового окна для открытия файлов
- •11.2. Работа с листами
- •11.2.1. Добавление новых листов
- •11.2.6. Предварительный просмотр и печать листов
- •11.2.7. Перемещение листов в книгах
- •11.2.8. Создание и удаление групп на листахExcel
- •11.2.9. Изменение форматирования строк листа
- •11.2.10. Копирование данных и форматирование по листам
- •11.2.11. Проверка орфографии на листах
- •11.2.12. Программная сортировка данных
- •11.3. Работа с диапазонами
- •11.3.1. Ссылки на диапазоны
- •11.3.2. Автоматическое заполнение диапазонов
- •11.3.3. Хранение и извлечение значений дат в диапазонах
- •11.3.4. Применение стилей к диапазонам и их отмена
- •11.3.5. Поиск текста в диапазоне ячеек
- •11.3.6. Применение цвета к тексту в диапазоне ячеек
- •11.3.7. Программное выполнение вычислений
- •11.4. Работа с ячейками
- •11.5. Структурирование вExcel
11.5. Структурирование вExcel
Рис.1. Создание групп |
Рис.2. Свернутые группы |
Рис.3. Полностью свернутые группы |
Таблица 4. Основные свойства и методы класса Outline(http://msdn.microsoft.com/ru-ru/library/microsoft.office.interop.excel.outline_members.aspx)
Имя |
Описание |
Свойства |
|
Application |
Возвращает объект Application, представляющий приложение Microsoft Excel |
AutomaticStyles (Boolean) |
Указывает, должен ли Excel применять к структурам автоматические стили |
SummaryColumn(XlSummaryColumn) |
Возвращает или устанавливает местонахождение итоговых столбцов в структуре. У перечислимого XlSummaryColumnдва возможных значения:xlSummaryOnLeftиxlSummaryOnRight |
SummaryRow (XlSummaryRow) |
Возвращает или устанавливает местонахождение итоговых строк в структуре. У перечислимого XlSummaryRowдва возможных значения:xlSummaryAboveиxlSummaryBelow |
Методы |
|
ShowLevels (RowLevels, ColumnLevels) |
Позволяет свертывать или развертывать группы структуры на нужном уровне строки и/или столбца. Методу можно передать два параметра, причем хотя бы один должен быть указан. Параметры ColumnLevelsиRowLevels– определяют число уровней строки/столбца струк-туры для отображения. Если структура содержит меньше уровней, чем определено соответствую-щим параметром, то Microsoft Excel отображает все уровни. Если же соответствующий параметр равен 0 (нулю) или опущен, то никаких действий на строках/столбцах выполняться не будет |
Пример использования метода ShowLevels.
Dim ws As Excel.Worksheet = CType(Application.ActiveSheet, _
Excel.Worksheet)
'Передача параметров RowLevelsи/илиColumnLevels
ws.Outline.ShowLevels(RowLevels:=3)
Демонстрация работы с полными строками как с диапазонами. Например, по щелчку по ссылке Work with Groupsна листе примера выполняется следующий код:
Friend Sub DoWorkWithGroups()
'Задаем параметры группирования уровня рабочего листа.
'В данном случае итоговые строки находятся под строками
'данных (т.е. Excelизвестно, куда помещать итоговые строки),
'а форматирование итоговых строк не требуется - оно уже
'выполнено.
Me.Outline.SummaryRow = Excel.XlSummaryRow.xlSummaryBelow
Me.Outline.AutomaticStyles=False
'Группируем два именованных диапазона,
'каждый из которых является группой полных строк.
Me.Data2001.Group()
Me.Data2002.Group()
Me.AllData.Group()
'Диапазон строк от 24 до 27 не является именованным,
'поэтому работаем с этим диапазоном напрямую.
Dim rng As Excel.Range = CType(Me.Rows("24:27"), Excel.Range)
rng.Group()
'Свертываем до групп второго уровня.
Me.Outline.ShowLevels(RowLevels:=2)
End Sub
Группировка трех именованных диапазонов:
Me.Data2001.Group()
Группировка неименованного диапазона:
Dim rng As Excel.Range = CType(ws.Rows("24:27"), Excel.Range)
rng.Group()
По щелчку по ссылке Clear Groupsна примере рабочего листа запускается код, очищающий группы:
Friend Sub DoClearGroups()
'Задаем параметры RowLevels и/или ColumnLevels:
Me.Outline.ShowLevels(RowLevels:=3)
Dim rng As Excel.Range = CType(Me.Rows("24:27"), Excel.Range)
rng.Ungroup()
Me.Data2001.Ungroup()
Me.Data2002.Ungroup()
Me.AllData.Ungroup()
End Sub
Литература:
1. MSDN Library, Microsoft.– http://msdn.microsoft.com/ru-ru/library/default.aspx .
2. Ken Getz. Understanding the Excel Object Model from a Visual Studio 2005 Developer's Perspective.– Microsoft, December 2005.– http://msdn.microsoft.com/ru-ru/library/aa537184. aspx .