![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid и таблица Word
Максон © (2011-04-11 12:19:00)Уважаемые форумчане, подскажите или наведите на мысль
Каким образом данные из StringGrid можно перенести в готовую таблицу шаблона Word.
Максон (2011-04-11 17:01:00) [41]Ребята, спасибо огромное, щас буду разбираться
Максон (2011-04-11 16:57:00) [42]
> > T.Cell(1, 1).Range.Text := 'qwer';'qwer' в первой таблице,
> в ячейке (1 1), есть?
Да есть, так получается.
А вот из Stringrid - никак
Smile (2011-04-11 15:39:00) [43]YurikGL
Уже как несколько лет назад выложил информацию про это в категорию "Статьи", да и на http://articles.org.ru/много инфы по этому вопросу
Dennis I. Komarov (2011-04-11 15:27:00) [44]Универсальный метод для:
Открываем Ворд (файл)
Макрос на запись
Написали текст
Макрос стоп
Смотрим...
OW (2011-04-11 14:50:00) [45]
> T.Cell(1, 1).Range.Text := 'qwer';
'qwer' в первой таблице, в ячейке (1 1), есть?
Максон (2011-04-11 13:37:00) [46]Как посоветовали переделал все
procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T: Variant;
begin
W := CreateOleObject('Word.Application');
W.Visible:=True;
W.DisplayAlerts:=True;
try
W.Documents.Open(GetCurrentDir +'\mmm.dot',EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
T := W.ActiveDocument.Tables.Item(1);
T.Cell(5, 2).Range.Text := strngrd1.Cells[0,2];
finally
end;
end;
Но все равно не получается отображение данных в таблице. Уже весь букварь перелистал, не могу назначить нужную ячейку в Stringgrid
Максон (2011-04-11 13:01:00) [47]Ребята, ну я правда не знаю как сделать :(
Dennis I. Komarov (2011-04-11 12:59:00) [48]Кофе или ромашки?
Максон (2011-04-11 12:49:00) [49]Это код почему-то не работает
procedure TForm2.DocbtnClick(Sender: TObject);
var RowPoint: Integer;
begin
if strngrd1.RowCount > 1 then
begin
if FileExists(GetCurrentDir + '\mmm.dot') then
begin
//
WA := CreateOLEObject('Word.Application');
WA.Documents.Add(GetCurrentDir + '\mmm.dot', false, 0);
WA.Options.CheckSpellingAsYouType := false;
WA.Options.CheckGrammarAsYouType := false;
//
// на всю талицу сделал закладку "Таблица"
WA.ActiveDocument.Bookmarks.Item('ТАБЛИЦА').Select;
for RowPoint := 2 to strngrd1.RowCount do
begin
//
// Добавляем новую строку
WA.Selection.Tables.Item(1).Rows.Add(EmptyParam);
// Заполняем строку
WA.Selection.Tables.Item(1).Cell( 2, 1).Range.Text := IntToStr(RowPoint - 1) + '.'; // 1-ый столбец
WA.Selection.Tables.Item(1).Cell( 2, 2).Range.Text := strngrd1.Cells[0, RowPoint - 1]; // 2-ой столбец
WA.Selection.Tables.Item(1).Cell( 2, 3).Range.Text := strngrd1.Cells[1, RowPoint - 1]; // 3-тий столбец
WA.Selection.Tables.Item(1).Cell( 2, 4).Range.Text := strngrd1.Cells[2, RowPoint - 1]; // 4-тый столбец
WA.Selection.Tables.Item(1).Cell( 2, 5).Range.Text := strngrd1.Cells[5, RowPoint - 1]; // 6-той столбец
WA.Selection.Tables.Item(1).Cell( 2, 6).Range.Text := strngrd1.Cells[6, RowPoint - 1]; // 7-мой столбец
WA.Selection.Tables.Item(1).Cell( 2, 7).Range.Text := strngrd1.Cells[7, RowPoint - 1]; // 8-мой столбец
end;
end;
end;
end;
OW (2011-04-11 12:49:00) [50]var
W, T: Variant;
begin
W := CreateOleObject('Word.Application');
try
W.Documents.Open('C:\1.doc',EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
T := W.ActiveDocument.Tables.Item(1);
T.Cell(1, 1).Range.Text := 'qwer';
Dennis I. Komarov (2011-04-11 12:42:00) [51]и вот как же на нее наводить, прикажите?
цикл по всем строкам
цикл по всем столбцам
в ячейку таблицы в word вставить соотверствующее содержимое из StringGrid
clickmaker (2011-04-11 12:37:00) [52]н-р, с помощью TWordApplication