Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача таблицы в Word, через вариантный массив 
V
    Опции темы
Sad_Hamster
Дата 12.10.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2007
Где: Russia

Репутация: нет
Всего: нет



Подскажите, Можно ли через вариантный массив (VarArrayCreate) передать в Word таблицу целиком,  вместо записи данных в каждую ячейку поочередно. 
Хочется следующего аналога, только для Word:
Код

 // Создаем Вариантный Массив, который заполним выходными данными
  ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
....
// Область, в которую будем выводить данные
  Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
....
  // Вывод данных
  Range.Value := ArrayData;

PM MAIL WWW ICQ   Вверх
Sad_Hamster
Дата 16.10.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2007
Где: Russia

Репутация: нет
Всего: нет



Вот вроде наиболее оптимальный вариант решения.
Код

var
  Rng: Range;
  MSWord : TWordApplication;
  VR : OleVariant;
  ST : TStringList;
  I, J : Integer;
  S : string;

begin
  ST := TStringList.Create;
  for I := 1 to 1000 do
  begin
    S := '';
    for J := 1 to 50 do
    begin
      if Length(s) > 0 then S := S + ',';
      S := S + IntToStr(J);
    end;
    ST.Add(S);
  end;


  Try
    MsWord := TWordApplication.Create(Self);
    MsWord.Connect;
    MsWord.Visible := False;
    MsWord.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

    Rng := MsWord.Selection.Range;
    VR := wdCollapseEnd;
    Rng.Collapse(VR);
    Rng.InsertAfter(St.Text);
    VR := ',';
    Rng.ConvertToTable(VR        , EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam,
                       EmptyParam, EmptyParam);




    MsWord.Visible := True;
    MsWord.Disconnect;
  Finally
    MsWord.Free;
  end;
  St.Free;
end;


PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.