private void NumbersButton_Click(object sender, EventArgs e)
private void NumbersButton_Click(object sender, EventArgs e) { //создаем новый документ на основе шаблона OpenDocument(" список. docx" ); //заменяем метку < Today> на текущую дату ReplaceText(" < Today> ", DateTime. Today. ToShortDateString()); //задаем параметры для поиска метки < Table> Object start = 0; Object end = wordDoc. Characters. Count; //диапазон поиска - весь документ Microsoft. Office. Interop. Word. Range rng = wordDoc. Range(ref start, ref end); rng. TextRetrievalMode. IncludeHiddenText = false; rng. TextRetrievalMode. IncludeFieldCodes = false; string metka = " < Table> "; //ищем в документе метку < Table> int beginphrase = rng. Text. IndexOf(metka); //получаем " координаты" начала и конца метки в документе start = beginphrase; end = beginphrase + metka. Length; //если метка < Table> найдена if (beginphrase! = -1) { //то удаляем ее rng = wordDoc. Range(ref start, ref end); rng. Text = " "; //и вставляем на ее место таблицу Object defaultTableBehavior = Type. Missing; Object autoFitBehavior = Type. Missing; //создаем объект таблицы (изначально - только шапка) Microsoft. Office. Interop. Word. Table tbl = rng. Tables. Add(rng, 1, 3, ref defaultTableBehavior, ref autoFitBehavior); //Форматируем таблицу и применяем стиль tbl. Range. Font. Size = 14; Object style = " Сетка таблицы"; tbl. set_Style(ref style); //шапка таблицы tbl. Cell(1, 1). Range. Text = " №пп"; tbl. Cell(1, 2). Range. Text = " ФИО"; tbl. Cell(1, 3). Range. Text = " Номер телефона";
//i - общее количество строк в формируемой таблице int i = 0; //перебираем всех людей из таблицы БД Contacts foreach (DataRow row in dataSet1. Contacts) {
//для каждой записи получаем дочерние строки из // таблицы Phones с номерами телефонов DataRow[] phones = row. GetChildRows (dataSet1. Relations [" FK_Contacts_Phones" ]); //если количество телефонов > 1 if (phones. Length > 1) { //то получаем ФИО этого человека string FIO = row[" Fam" ]. ToString() + " " + row[" Name" ]. ToString(); //перебираем все его телефоны foreach (DataRow phone in phones) { i++; //добавляем в таблицу документа новую строку Object beforeRow = Type. Missing; tbl. Rows. Add(ref beforeRow); //и заполняем ее столбцы tbl. Cell(i + 1, 1). Range. Text = i. ToString(); tbl. Cell(i + 1, 2). Range. Text = FIO; tbl. Cell(i + 1, 3). Range. Text = phone[" Phone" ]. ToString(); } } } //шапку таблицы выделяем курсивом tbl. Rows[1]. Range. Font. Italic = 1; //и устанавливаем выравнивание по центру tbl. Rows[1]. Range. ParagraphFormat. Alignment = Microsoft. Office. Interop. Word. WdParagraphAlignment. wdAlignParagraphCenter; } else ReplaceText(" Table", " " ); //отображаем сформированный документ wordApp. Visible = true; }
Пример сформированного программой документа показан на рисунке 3. 6:
Рисунок 3. 6 – Пример сформированного документа
5 Задание для самостоятельной работы Добавить в программу предыдущих заданий возможность формирования двух-трех документов на основе имеющихся шаблонов с использованием объектной модели Word. Хотя бы один документ должен содержать таблицу. ЗАДАНИЕ № 4. Разработка бизнес-приложений с использованием объектной модели Excel 1 Цель задания Изучить принципы работы объектной модели Excel и ее использования для разработки бизнес-приложений. Получить навыки работы с пространствами имен, классами, методами, используемыми для автоматической генерации и настройки отчетов.
2 Порядок выполнения работы Получить задание на выполнение задания к контрольной работе (раздел 5). Разработать и отладить доработанное приложение.
4 Порядок выполнения работы Добавим в приложение «Телефонный справочник» возможность экспорта данных в Microsoft Excel (например, список всех телефонов из справочника, сгруппированный по фамилиям). Чтобы использовать объектную модель Excel, в приложение нужно добавить ссылку на COM-библиотеку Microsoft Word 14. 0 Object Library (рисунок 4. 1).
Рисунок 4. 1 – Добавление ссылки на объектную модель Excel
В качестве шаблона, на основе которого будет формироваться список, будет использоваться файл «spisok. xlsx», внешний вид которого приведен на рисунке 4. 2. Создайте этот файл и поместите его в папку reports в каталоге, где находится. exe-файл приложения.
Рисунок 4. 2 – Внешний вид файла шаблона
Для работы с объектной моделью Excel следует подключить пространство имен Microsoft. Office. Interop. Excel. Для работы с Excel нам понадобятся объекты, представляющие приложение, окно, рабочую книгу, рабочий лист Excel, а также диапазон ячеек. Объявите их в классе формы следующим образом:
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|