КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
И методические указания
ЛАБОРАТОРНОЕ ЗАДАНИЕ Внешний вид таблицы Работа с таблицами в Word ТЕОРЕТИЧЕСКАЯ ЧАСТЬ Домашнее задание и методические указания по его выполнению Используемое оборудование Содержание работы Общее описание работы
1.1. Цель работы: состоит в изучении принципов создания таблиц в программе Word.
Лабораторная работа состоит из домашнего и лабораторного заданий. Домашнее задание заключается в изучении принципов построения таблиц в программе Word. Лабораторное задание включает написание программы на языке Delphi с выполнением всех изученных в домашнем задании данных.
Для выполнения лабораторной работы используются программно-аппаратные средства: ПЭВМ класса Pentium стандартной конфигурации, цветной монитор с графическим адаптером VGA и выше, объем оперативной памяти не менее 64 Мб, ОС Windows 98 и выше, не менее 40 Mb свободного объема на жестком диске.
По методическому руководству ознакомиться с принципами построения таблиц в Microsoft Word с помощью языка программирования Delphi 6.
Далее будут рассмотрены вопросы программной работы с таблицами документа Word. Тут могут быть два пути. Первый - если заранее известна структура данных отчета, можно приготовить шаблон, куда в ячейки таблицы затем просто занесем нужные данные. И второй - создание отчета с нуля, создание в документе таблицы, заполнение ее. При этом можно программно добавить или удалить строки и столбцы, объединить или разбить ячейки - почти все, что мы делаем в самом Word'e. Все, что понадобится – компоненты WordApplication и WordDocument с палитры Servers. Таблицы в документе Word образуют коллекцию Tables. Их количество можно узнать так:
tcount:=WordDocument1.Tables.Count;
к отдельной таблице обращаемся по ее номеру:
i:=1; WordDocument1.Tables.Item(i)...,
где i - целое число. В данном случае мы обращаемся к первой таблице, а вообще i может принимать значения от 1 до WordDocument1.Tables.Count. Если нам необходимо создать таблицу самим, следует поступить так:
WordApplication1.ActiveDocument.Tables.Add(WordApplication1.Selection.Range,i,j);
Эта таблица - единственное, что будет в документе, так как она заменяет собой указанный в числе параметров объект Range. В данном случае получаем таблицу на i строк и j столбцов. Если уже еcть какой-то текст, который надо сохранить, то в начале снимаем с него выделение и только затем вставляем таблицу:
Direction:=0; WordApplication1.Selection.Collapse(Direction); WordApplicаtion1.ActiveDocument.Tables.Add(WordApplication1. Selection.Range,1,7);
Ну вот, теперь у нас есть таблица. Неважно, содержалась она уже в документе или мы создали ее сами. Посмотрим, что же мы с ней можем сделать. Число столбцов и строк узнаем так:
i:=1; k:=WordDocument1.Tables.Item(i).Columns.Count; j:=WordDocument1.Tables.Item(i).Rows.Count;
Здесь мы опять обратились к первой таблице, но можем работать с любой - надо только правильно указать ее номер. Теперь изменим ширину столбцов или высоту строк:
WordDocument1.Tables.Item(i).Columns.Width:=90; WordDocument1.Tables.Item(i).Rows.Height:=45;
Аналогично можем задавать размеры отдельных строк и столбцов:
WordDocument1.Tables.Item(i).Columns.Item(j).Width:=90; WordDocument1.Tables.Item(i).Rows.Item(j).Height:=45;
Здесь j - целое число, начинается от 1. Можем обратиться к отдельной ячейке, прочитать или изменить содержащийся в ней текст:
WordDocument1.Tables.Item(i).Cell(j,k).Range.Text; Здесь j и k целые переменные, изменяются от 1 до числа строк или столбцов соответственно. Присвоив данной величине строковое выражение, увидим, что оно появилось в ячейке (j,k). Несколько непривычно, но в таблицах Word на первом месте стоит именно номер строки. Можем также задать программно отступы от края ячеек, как для всей таблицы сразу, так и для отдельной ячейки:
WordDocument1.Tables.Item(i).TopPadding:=10; WordDocument1.Tables.Item(i).BottomPadding:=10; WordDocument1.Tables.Item(i).RightPadding:=10; WordDocument1.Tables.Item(i).LeftPadding:=10;
В данном случае мы задали одинаковые отступы для всей таблицы, но аналогичные четыре свойства есть и у отдельной ячейки. Выделить нужную ячейку, столбец или строку можем следующим образом:
WordDocument1.Tables.Item(i).Cell(j,k).Select; WordDocument1.Tables.Item(i).Columns.Item(j).Select; WordDocument1.Tables.Item(i).Rows.Item(j).Select;
Кроме того, можем подогнать размеры ячеек по содержимому. Для этого вызываем метод AutoFit:
WordDocument1.Tables.Item(i).Columns.AutoFit;
Добавить строку или столбец также не представляет сложностей:
WordDocument1.Tables.Item(i).Columns.Add(EmptyParam); WordDocument1.Tables.Item(i).Rows.Add(EmptyParam); Мы добавили строку внизу и столбец справа. Теперь вставим столбец в определенном месте таблицы:
var i, j: Integer; varcol: OleVariant; ... j:=2; varcol:=WordDocument1.Tables.Item(i).Columns.Item(j); WordDocument1.Tables.Item(i).Columns.Add(varcol); Совершенно аналогично поступаем и со строками. Вообще в скобках указаны строка или столбец, перед которыми происходит вставка. Однако явно указать в скобках почему-то нельзя, надо через переменную.
Теперь про объединение ячеек. Довольно просто:
WordDocment1.Tables.Item(i).Cell(j,k).Merge(WordDocument1.Tables. Item(i).Cell(j,k+1));
Мы объединили две соседние по горизонтали ячейки (j,k) и (j,k+1). При этом получается, что большая ячейка как бы имеет два "адреса". Аналогично надо действовать и при объединении по вертикали. Все точно так же, но с нумерацией ячеек после объединения двух соседних по вертикали начинается путаница, и при попытке заполнить таблицу возникают ошибки. Теперь разобьем ячейки.
varrow:=1; varcol:=2; WordDocument1.Tables.Item(i).Cell(j,k).Split(varrow, varcol);
Здесь мы разбили ячейку (j,k) на две по горизонтали. Переменные varcol и varrow типа OleVariant это количество столбцов и строк, на которые разбивается данная ячейка. Здесь снова с нумерацией начинается чехарда, так что этот вопрос разбиения и объединения ячеек представляет скорее чисто теоретический интерес. В таких случаях лучше заранее приготовить шаблоны.
Теперь для примера удалим из таблицы второй столбец или третью строку:
WordDocument1.Tables.Item(i).Columns.Item(2).Delete; WordDocument1.Tables.Item(i).Rows.Item(3).Delete;
Простейшая таблица, конечно, смотрится не очень. Теперь посмотрим, как мы можем ее приукрасить. При желании все сделать посимпатичнее можем использовать текстуру. Выглядеть это будет так:
WordDocument1.Tables.Item(i).Cell(j,k).Shading.Texture:=wdTexture20Percent;
Совершенно аналогично можем сделать текстуру в целом столбце или строке:
WordDocument1.Tables.Item(i).Columns.Item(j).Shading.Texture:=wdTexture20Percent; WordDocument1.Tables.Item(i).Rows.Item(j).Shading.Texture:=wdTexture20Percent;
Текстура задается шестнадцатеричной константой, список констант можно найти заголовочном файле Word2000.pas. Можно их использовать как в шестнадцатеричном, так и в символьном виде. Чтобы не загромождать материал, значения констант будут выноситься в "Приложение" в конце статьи. Сразу оговорюсь, что заливка будет черно-белая или в шкале серого. Заливку определенным цветом пока так и не удалось обнаружить. Самая первая константа означает отсутствие заливки. Ее можно использовать, чтобы отменить текстуру. Чтобы выделить что-нибудь важное, можем изменить шрифт текста в определенной ячейке. Для этого воспользуемся свойствами объекта Selection:
WordDocument1.Tables.Item(i).Cell(1,2).Select; WordApplication1.Selection.Font.Color:=clRed; WordApplication1.Selection.Font.Italic:=1; WordApplication1.Selection.Font.Size:=16;
В данном примере мы сделали цвет текста в ячейке (1,2) красным, выделили его курсивом и изменили размер на 16. Кроме того, можем сделать шрифт подчеркнутым, перечеркнутым и т.п. (Точно также можно менять шрифт в любом выделенном фрагменте текста). Еще один способ изменить внешний вид таблицы - использовать стилевые шаблоны Word'a. У таблицы имеется метод AutoFormat, который меняет внешний вид таблицы в соответствии с некими предопределенными стилями. В заголовочном файле он описан следующим образом:
procedure AutoFormat( var Format: OleVariant; var ApplyBorders: OleVariant; var ApplyShading: OleVariant; var ApplyFont: OleVariant; var ApplyColor: OleVariant; var ApplyHeadingRows: OleVariant; var ApplyLastRow: OleVariant; var ApplyFirstColumn: OleVariant; var ApplyLastColumn: OleVariant; var AutoFit: OleVariant );
Первый параметр представляет из себя собственно константу, задающую стиль, а остальные показывают, будут ли требования нового стиля применяться конкретно к границам, тени, шрифту, цвету, первой строке, последней строке, первому столбцу и последнему столбцу. Последний параметр в списке указывает, надо ли подгонять размер ячеек по их содержимому - лучше самому потом вызвать AutoFit. Как показала практика, работают только два первых параметра. Все остальные заменяем "пустышками". То есть это скорее будет просто способ изменения стиля границ, но и на том спасибо. Некоторые стили таблиц даны в приложении, полный же список ищите в заголовочном файле. Вместо второго параметра ставим вариантную переменную, которой присваиваем wdTableFormatApplyBorders. То есть на практике это выглядит так:
var tformat, tappbrd: OleVariant; ... tformat:=wdTableFormatWeb3; tappbrd:=wdTableFormatApplyBorders; i:=1; WordDocument1.Tables.Item(i).AutoFormat(tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
Дата добавления: 2015-03-29; Просмотров: 385; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |