Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 23:28   #1
RomanDemidov
 
Регистрация: 09.10.2010
Сообщений: 9
По умолчанию Экспорт со Stringgrid в Word (работа с несколькими табицами)

Нужно,экспортировать со стринггрид в ворд. При этом есть обьект SpinEdit, в котором нужно выбрать количество таблиц(от 1 до 5).С одной таблицей всё получается.Но при 2 уже не работает.Точнее вторая таблица не создаётся, а перезаписывается в первую.Вот код для 2 таблиц:
Код:
  var
     WordApp, NewDoc, WordTable: OLEVariant;
  W, Table,Table2,Table3,Table4,Table5: Variant;
  Row, Col, i, j: Integer;
begin
Form2.GetFormImage;
 Clipboard.Assign(form2.getformimage);

if k=1 then begin //k-это значение Spinedit
   try
  W := CreateOleObject('Word.Application');
   except
    Exception.Create('Error');
    end;

  W.Documents.Add;

  W.Selection.Font.Size := 12;
  W.Selection.TypeText('');
  W.Selection.Font.Bold := true;
  W.Selection.TypeText(#13#10'');
    W.selection.TypeParagraph;

  W.ActiveDocument.Tables.Add(W.ActiveDocument.Range,
  StringGrid5.RowCount, StringGrid5.ColCount);

  Table := W.ActiveDocument.Tables.Item(1);
  Table.Style := 'Сетка таблицы';
  for i := 0 to StringGrid5.RowCount - 1 do
    for j := 0 to StringGrid5.ColCount - 1 do
      Table.Cell(i +1, j+1 ).Range.Text := StringGrid5.Cells[j, i];
  W.Visible := True;
  w.selection.movedown(Unit:=wdline,Count:=4);
  W.selection.TypeParagraph;
    w.selection.paste;
  w.ActiveDocument.SaveAs('C:\Tranzistor.doc');
  end;
  if k=2 then begin
   try
  W := CreateOleObject('Word.Application');
   except
    Exception.Create('Error');
    end;

  W.Documents.Add;

  W.Selection.Font.Size := 12;
  W.Selection.TypeText('');
  W.Selection.Font.Bold := true;
  W.Selection.TypeText(#13#10'');
    W.selection.TypeParagraph;

  W.ActiveDocument.Tables.Add(W.ActiveDocument.Range,
  StringGrid5.RowCount, StringGrid5.ColCount);

  Table := W.ActiveDocument.Tables.Item(1);
  Table.Style := 'Сетка таблицы';
  for i := 0 to StringGrid5.RowCount - 1 do
    for j := 0 to StringGrid5.ColCount - 1 do
      Table.Cell(i +1, j+1 ).Range.Text := StringGrid5.Cells[j, i];
  W.Visible := True;
  w.selection.movedown(Unit:=wdline,Count:=4);
  W.selection.TypeParagraph;
    W.ActiveDocument.Tables.Add(W.ActiveDocument.Range,
  StringGrid2.RowCount, StringGrid2.ColCount);

  Table2 := W.ActiveDocument.Tables.Item(1);
  Table2.Style := 'Сетка таблицы';
  for i := 0 to StringGrid2.RowCount - 1 do
    for j := 0 to StringGrid2.ColCount - 1 do
      Table2.Cell(i +1, j+1 ).Range.Text := StringGrid2.Cells[j, i];
  W.Visible := True;
  w.selection.movedown(Unit:=wdline,Count:=4);
  W.selection.TypeParagraph;

    w.selection.paste;

  w.ActiveDocument.SaveAs('C:\Tranzistor.doc');
  end;
Сегодня посидел,но так и ничего не получается.Можна лишь закинуть 2 эти таблицы в разные документы(создать 2 документа)

Последний раз редактировалось RomanDemidov; 13.11.2010 в 12:33.
RomanDemidov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из StringGrid в Word Polotenchik Общие вопросы Delphi 12 23.09.2011 23:22
экспорт отчета в Word higor Microsoft Office Access 4 04.10.2009 00:24
Экспорт из StringGrid в MS Office Excel Kamikadze_666 Общие вопросы C/C++ 0 26.03.2009 08:53
экспорт в word AD_min Общие вопросы Delphi 4 05.12.2008 14:17
Экспорт в Word Constellation БД в Delphi 5 15.04.2008 18:47