Имя: Пароль:
1C
 
Создание и редактирование таблиц в ворде!
0 mzelensky
 
18.02.10
16:54
Нужно сформировать отчет и перегнать его в ворд. Проблема в том, что приходится создавать программно несколько таблиц. Нашел следующий код для 8.1:

Word.Application.ActiveDocument.Paragraphs.Add();
Номер=Word.Application.ActiveDocument.Paragraphs.Count();
Word.Application.ActiveDocument.Tables.add(Word.Application.ActiveDocument.Paragraphs(Номер).Range,1,4);

В результате таблица действительно добавилось, все классно, НО - у нее выставлено значение в "Границы и Заливка" "Нет границ", т.е. визуально саму таблику просто не видно (саму сетку)!!! Как прописать параметр, чтобы границы были видны???
1 mzelensky
 
24.02.10
11:09
Если кому-то интересно, то сделал вот так:

таблкол=1; //Номер таблицы, по счету, в документе word (параметр вводил, така как у меня тоблицы создавались в цикле)
Word.Application.ActiveDocument.Paragraphs.Add(); //добавляем параграф
Номер=Word.Application.ActiveDocument.Paragraphs.Count(); //получаем номер параграфа
Word.Application.ActiveDocument.Tables.add(Word.Application.ActiveDocument.Paragraphs(Номер).Range,1,4); //создаем новую таблицу размером 1*4 (1 строка и 4 колонки). Вставляем ее в параграф с соответствующим номером "Номер" (в данном случае в конец документа).
Word.Application.ActiveDocument.Tables(таблкол).AutoFormat(16); //выставляем формат отображения таблицы. В данном случае таблица будет с обычной границей, без заливки. Параметр варьируется от 0 до...(примерно несколько десятков). Удобно просто в цикле перебрать, а потом выбрать нужный!
           
Word.Application.ActiveDocument.Tables(таблкол).Rows(1).Cells(1).Range.Text =  Строка("Тип работы, название");    //заполняем яцейки таблицы текстом    
Word.Application.ActiveDocument.Tables(таблкол).Rows(1).Cells(2).Range.Text =  Строка("Объем, п.л."); /заполняем яцейки таблицы текстом        
Word.Application.ActiveDocument.Tables(таблкол).Rows(1).Cells(3).Range.Text =  Строка("Место издания, тираж"); /заполняем яцейки таблицы текстом
Word.Application.ActiveDocument.Tables(таблкол).Rows(1).Cells(4).Range.Text =  Строка("Авторы"); /заполняем яцейки таблицы текстом          
Word.Application.ActiveDocument.Range( Word.Application.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.Application.ActiveDocument.Tables(таблкол).Cell(1,4).Range.End).Font.Bold = Истина; // выделяем область яцеек с 1 по 4 для первой строки и выставляем шрифт "Жирный"
Word.Application.ActiveDocument.Range( Word.Application.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.Application.ActiveDocument.Tables(таблкол).Cell(1,4).Range.End).Font.size = 14; // выделяем область яцеек с 1 по 4 для первой строки и выставляем размер шрифта "14"            
Word.Application.ActiveDocument.Range( Word.Application.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.Application.ActiveDocument.Tables(таблкол).Cell(1,4).Range.End).ParagraphFormat.Alignment = 1; // выделяем область яцеек с 1 по 4 для первой строки и выставляем выравнивание текста "По центру". Параметр варьируется от 0 до 3. (левый край, центр, правый край, по ширине  соответственно)

Word.Application.ActiveDocument.Tables(таблкол).Rows.Add(); //добавляем новую строчку в эту таблицу


Может кому пригодится :)
2 Stim
 
24.02.10
11:13
ну что можно сказать... молодец!:)