M
Milanam
Каким образом можно перенести данные с нескольких StringGrid в Word, на один лист
Добавлено: и как можно добавить текст до или после таблицы?
Добавлено: и как можно добавить текст до или после таблицы?
Прямо таки на один? А если на один не влезут?Каким образом можно перенести данные с нескольких StringGrid в Word, на один лист
var
App,Doc: OleVariant;
//...
App := CreateOleObject('Word.Application');
Doc := App.Documents.Add; // Doc := App.Documents.Add(fileName, EmptyParam);
var
What, Which, Count, Name: OleVariant;
//...
What := wdGoToPage;
Which := wdGoToPrevious; // wdGoToNext
Count := 2;
Name := unAssigned;
App.Selection.Goto(What, Which, Count, Name);
Cols := StringGrid1.ColCount;
Rows := StringGrid1.RowCount;
Table := Doc.Tables.Add(App.Selection.Range, Cols, Rows);
for i := 1 to Rows do
for j := 1 to Cols do
Table.Cell(i, j).Range.Text := StringGrid1.Cells[j - 1, i - 1];
//...
Selection.Start := Table.Range.End+1;
Selection.Collapse();
Selection.Range.InsertAfter('Текст после первой таблицы');
Добавлено: и как можно добавить текст до или после таблицы?
Table := Doc.Tables(2);
Table.Range.InsertBefore('Текст перед 2-й таблицей');
это вопрос? к нам?что то с Selection ошибка выходит?(
Это бывает... когда несколько документов открыто...что то с Selection ошибка выходит?(
What := wdGoToPage;
Which := wdGoToPrevious; // wdGoToNext
Count := 2;
Doc.ActiveWindow.Selection.GoTo(What,Which,Count);
What := wdGoToPage;
Which := wdGoToNext;
Name := unAssigned;
Count := 1;
Doc.ActiveWindow.Selection.Start := Doc.GoTo(What,Which,Count).Start; // Это смещение на 1 стр. относительно начала документа
// т.е селекшн ставится в начало 2-й страницы
uses
ComObj, Office_TLB, Word_TLB, Variants;
//...
var
Doc: WordDocument;
App: TWordApplication;
Tbl : Table;
//...
App := TWordApplication.Create(nil);
App.ConnectKind := ckRunningOrNew;
App.Connect;
App.Visible := True;
Doc := App.Documents.AddOld(EmptyParam,EmptyParam); // Doc := App.Documents.Add(fileName, EmptyParam,EmptyParam,EmptyParam);
Cols := StringGrid1.ColCount;
Rows := StringGrid1.RowCount;
Tbl := Doc.Tables.AddOld(Doc.ActiveWindow.Selection.Range, Cols, Rows);
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab