Курсовая работа: Delphi: работа с MS WORD
var range1, range2, range3, a, b : OleVariant;
...
range1:=WordDocument1.Range;
a:=5;
b:=15;
range2:=WordDocument1.Range(a,b);
range3:=WordDocument1.Range(a);
Первый наш объект включает в себя весь текст документа, у второго мы ограничили пределы 5-м и 15-м символами, третий представляет из себя весь последующий текст документа, начиная с 5-го символа.
Объект имеет несколько полезных методов, например, с его помощью можем добавить текст в документ:
range2.InsertAfter('MS Word');
Это мы вставили текст после выделенного Range. Точно также можем вставить текст и перед ним, для этого служит метод InsertBefore(). Текст, заключенный в объекте Range, можем получить так:
WordDocument1.Range(a,b).Text;
Кроме того, с помощью Range можем изменить шрифт в пределах объекта.
Пример:
a:=5;
b:=15;
WordDocument1.Range(a,b).Font.Bold:=1;
Если хотим отменить выделение жирным шрифтом, присваиваем 0. Аналогично можно сделать шрифт курсивом, подчеркнутым - наберите WordDocument1.Range.Font., и среда сама подскажет, какие могут быть варианты. Методы Select, Cut, Copy и Paste работают как в обычном тексте. С помощью Paste можем на место выбранного Range вставить не только строки, но и рисунок, находящийся в буфере обмена.
Т а б л и ц ы
Работа со столбцами, строками и ячейками
Таблицы в документе Word образуют коллекцию Tables. Их количество можем узнать так:
tcount:=WordDocument1.Tables.Count;
к отдельной таблице обращаемся по ее номеру:
i:=1;
WordDocument1.Tables.Item(i) ...,
где i - целое число. В данном случае мы обращаемся к первой таблице, а вообще i может принимать значения от 1 до WordDocument1.Tables.Count. Если нам необходимо создать таблицу самим, следует поступить так:
WordDocument1.Tables.Add(WordDocument1.Range, i, j, EmptyParam, EmptyParam);
Эта таблица - единственное, что будет в документе, так как она заменяет собой указанный в числе параметров объект Range. В данном случае получаем таблицу на i строк и j столбцов. Если уже еcть какой-то текст, который надо сохранить, совершенно аналогичным образом можем указать пределы объекта Range:
a:=5;