Вход | Регистрация
 

Чтение и запись таблицы WORD

Чтение и запись таблицы WORD
Я
   ProgaN
 
17.02.10 - 08:45
Добрый день. Стоит задача - считать таблицу из файла WORD, сравнить построчно, добавить новый столбец, записать туда значение, выделить цветом. Помогите плиз. Нало есть:
Word.Documents.Open(ИмяФайла);
Word = Новый ComОбъект("Word.Application");
Документ = Word.ActiveDocument ();
Таблица = Документ.Tables.Item(1);
 
 
   Ygich
 
1 - 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(Значение.Имя);
Исключение
КонецПопытки;
   Stim
 
3 - 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;        
 КонецЦикла;
 
 
 
КонецПроцедуры
   0xFFFFFF
 
4 - 17.02.10 - 09:07
БольшаяКраснаяКнопкаНажатие :)
   0xFFFFFF
 
5 - 17.02.10 - 09:07
так вот какой ты - алгоритм нажатия большой красной кнопки
   ProgaN
 
6 - 17.02.10 - 10:41
Спасибо )))
   ProgaN
 
7 - 17.02.10 - 11:22
Подскажите, как добавить столбец в таблицу Word из 1С?
   dk
 
8 - 17.02.10 - 11:47
Макросы умеешь записывать?
   ProgaN
 
9 - 17.02.10 - 11:57
умею
   dk
 
10 - 17.02.10 - 11:57
тогда в чем вопрос?
 
 Рекламное место пустует
   ProgaN
 
11 - 17.02.10 - 11:58
Вот такой макрос получился:
Selection.InsertColumnsRight
Как преобразовать?
   dk
 
12 - 17.02.10 - 12:17
Таблица.InsertColumnsRight()
   dk
 
13 - 17.02.10 - 12:24
или как по справке
Таблица.Columns(2).Select();
Word.Selection.InsertColumnsRight();
   ProgaN
 
14 - 17.02.10 - 13:36
Ошибка при вызове метода контекста (Columns): Произошла исключительная ситуация (Microsoft Word): Отсутствует доступ к отдельным столбцам, поскольку ячейки таблицы имеют разную ширину.
   dk
 
15 - 17.02.10 - 13:57
Таблица.Cell(1,2).Select();
---
все разжевывать надо? )
   ProgaN
 
16 - 17.02.10 - 14:21
Спасибо за очередное разжевывание. )))
Еще пара вопросов к Вам. 
1. Согласно вышеуказанному коду у столбца 2 (Select) увеличивается ширина. Почему?
2. Как в определенной ячейке поменять цвет шрифта?
   dk
 
17 - 17.02.10 - 20:17
(16) 1. хз
2. макрос записывала? хде текст?
думаю что-то типа такого
таблица.cells(1,1).font.size = 18
   ProgaN
 
18 - 18.02.10 - 07:55
(17) Не получается. Цвет остается прежним. Макрос:
   Selection.Font.Color = wdColorRed
   dk
 
19 - 18.02.10 - 08:53
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Ворд = Новый ComObject("Word.Application");
    Ворд.Visible = Истина;
    Док = Ворд.Documents.Add();
    Таблица = Док.Tables.Add(Ворд.Selection.Range, 6, 5);
    Яч = Таблица.Cell(3, 4).Range;
    Яч.Text = "sdfsdfsdf";
    Яч.Font.Color = 255;
    Предупреждение("Ждем");
КонецПроцедуры


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует