|
Чтение и запись таблицы WORD | ☑ | ||
---|---|---|---|---|
0
ProgaN
17.02.10
✎
08:45
|
Добрый день. Стоит задача - считать таблицу из файла WORD, сравнить построчно, добавить новый столбец, записать туда значение, выделить цветом. Помогите плиз. Нало есть:
Word.Documents.Open(ИмяФайла); Word = Новый ComОбъект("Word.Application"); Документ = Word.ActiveDocument (); Таблица = Документ.Tables.Item(1); |
|||
1
Ygich
17.02.10
✎
08:48
|
что спросить то хотел? или хочешь чтобы все за тебя сделали?
|
|||
2
чувак
17.02.10
✎
08:50
|
// Устанавливаем жирный шрифт для шапки таблицы
Документ.Range( Таблица.Cell( Счетчик,!). Range.Start, Таблица.Cell(Счетчик,4).Range.End).Font.Bold = Истина; Для каждого Значение Из Объект[Параметр.Ключ] Цикл Счетчик = Счетчик + 1; // Заполняем содержимое таблицы Попытка Таблица.Cell(Счетчик,1).Range().InsertAfter(Значение.Имя); Исключение КонецПопытки; |
|||
3
Stim
17.02.10
✎
08:58
|
(0)//ПРоцедура заполняет заранее созданую таблицу в Ворде. мож пригодится тебе
Процедура БольшаяКраснаяКнопкаНажатие(Элемент) // Вставить содержимое обработчика. АктивныйДокумент = ПолучитьМакет("Макет1"); WordDoc = АктивныйДокумент.Получить(); WordDoc.Application.Visible=1; Таблица = WordDoc.Tables.Item(1); запрос= Новый запрос(); запрос.Параметры.Вставить("ДатаНачала",ДатаНачала); запрос.Параметры.Вставить("ДатаКонца",ДатаКонца); запрос.Текст = "ВЫБРАТЬ |ВсеТемы.ДатаПроведения КАК ДатаПроведения, |ВсеТемы.ВремяПроведения КАК ВремяПроведения, |ВсеТемы.ПредметПроведения КАК ПредметПроведения, |ВсеТемы.ТемаЗанятия КАК ТемаЗанятия, |ВсеТемы.ФормаПроведения КАК ФормаПроведения | ИЗ РегистрСведений.ВсеТемы КАК ВсеТемы |ГДЕ ДатаПроведения >= &ДатаНачала И ДатаПроведения <= &ДатаКонца |УПОРЯДОЧИТЬ ПО ДатаПроведения "; Результат= запрос.Выполнить().Выгрузить(); Если месяц(ЭлементыФОрмы.ДатаНачала.Значение)= месяц(ЭлементыФОрмы.ДатаКонц.Значение) Тогда НачалоНедели = День(ЭлементыФОрмы.ДатаНачала.Значение); Иначе НачалоНедели = ФОрмат(ЭлементыФОрмы.ДатаНачала.Значение,"ДФ=""дд ММММ"""); КонецЕсли; WordDoc.Variables.Item("НачалоНедели").Value=НачалоНедели; WordDoc.Variables.Item("КонецНедели").Value=Формат(ЭлементыФОрмы.ДатаКонц.Значение,"ДФ=""дд ММММ гггг 'года' """); //"ДФ=""дд ММММ""" WordDoc.Variables.Item("ДатаУтверждения").Value=ФОрмат(((ЭлементыФОрмы.ДатаНачала.Значение)-3*60*60*24),"ДФ=""дд ММММ гггг ' года' """) ; WordDoc.Fields.UpDate(); Для ии = 1 По Результат.Количество()-1 Цикл Таблица.Rows.Add(Таблица.Rows(3)); // тиражируем первую строку сколько нужно раз КонецЦикла; НомерСтроки = 2; для каждого стр из Результат Цикл ДатаПроведения = Формат(стр.ДатаПроведения, "ДФ =""дд.ММ"""); НомерСтроки = НомерСтроки+1; Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Строка(ДатаПроведения)); Таблица.Cell(НомерСтроки,1).Range().Font.Size = 9; Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Строка(стр.ВРемяПроведения)); Таблица.Cell(НомерСтроки,2).Range().Font.Size = 9; Таблица.Cell(НомерСтроки,3).Range().InsertAfter(Строка(Строка(стр.ПредметПроведения)+" "+ строка(стр.ТемаЗанятия))); Таблица.Cell(НомерСтроки,3).Range().Font.Size = 9; присоед = Таблица.Cell(НомерСтроки, 1); Если присоед = Таблица.Cell(НомерСтроки-1, 1) тогда Таблица.Cell(НомерСтроки-1, 1).Merge(присоед); Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Строка(ДатаПроведения)); Конецесли; WordDoc= 0; КонецЦикла; КонецПроцедуры |
|||
4
0xFFFFFF
17.02.10
✎
09:07
|
БольшаяКраснаяКнопкаНажатие :)
|
|||
5
0xFFFFFF
17.02.10
✎
09:07
|
так вот какой ты - алгоритм нажатия большой красной кнопки
|
|||
6
ProgaN
17.02.10
✎
10:41
|
Спасибо )))
|
|||
7
ProgaN
17.02.10
✎
11:22
|
Подскажите, как добавить столбец в таблицу Word из 1С?
|
|||
8
dk
17.02.10
✎
11:47
|
Макросы умеешь записывать?
|
|||
9
ProgaN
17.02.10
✎
11:57
|
умею
|
|||
10
dk
17.02.10
✎
11:57
|
тогда в чем вопрос?
|
|||
11
ProgaN
17.02.10
✎
11:58
|
Вот такой макрос получился:
Selection.InsertColumnsRight Как преобразовать? |
|||
12
dk
17.02.10
✎
12:17
|
Таблица.InsertColumnsRight()
|
|||
13
dk
17.02.10
✎
12:24
|
или как по справке
Таблица.Columns(2).Select(); Word.Selection.InsertColumnsRight(); |
|||
14
ProgaN
17.02.10
✎
13:36
|
Ошибка при вызове метода контекста (Columns): Произошла исключительная ситуация (Microsoft Word): Отсутствует доступ к отдельным столбцам, поскольку ячейки таблицы имеют разную ширину.
|
|||
15
dk
17.02.10
✎
13:57
|
Таблица.Cell(1,2).Select();
--- все разжевывать надо? ) |
|||
16
ProgaN
17.02.10
✎
14:21
|
Спасибо за очередное разжевывание. )))
Еще пара вопросов к Вам. 1. Согласно вышеуказанному коду у столбца 2 (Select) увеличивается ширина. Почему? 2. Как в определенной ячейке поменять цвет шрифта? |
|||
17
dk
17.02.10
✎
20:17
|
(16) 1. хз
2. макрос записывала? хде текст? думаю что-то типа такого таблица.cells(1,1).font.size = 18 |
|||
18
ProgaN
18.02.10
✎
07:55
|
(17) Не получается. Цвет остается прежним. Макрос:
Selection.Font.Color = wdColorRed |
|||
19
dk
18.02.10
✎
08:53
|
|
Форум | Правила | Описание | Реклама | Секции | Поиск | Книга знаний | Вики-миста |