Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.22;
Скачать: CL | DM;

Вниз

Как вписывать что-то в вордовскую таблицу?   Найти похожие ветки 

 
TStas ©   (2006-07-14 20:27) [0]

Попытки посмотреть свойства TWordApplication пока результатов не дали. С экселем все просто, да и статья по нему есть. А вот как вписать в ячейки именно вордовской таблицы текст?


 
isasa ©   (2006-07-15 11:20) [1]

Как вариант.
Сформировать таблицу как текст, разделенный табуляцией в буфере (WordBuff: string).
А потом сделать такой финт.

SetTable(wDoc.Paragraphs.Item(wDoc.Paragraphs.Count).Range, WordBuff, nCol); //в конец документа.

где

procedure TWordConsole.SetTable(Selection : variant; Text : string; nCol : integer);
begin
   Selection.Text:=Text;
   Selection.Font.Size := 9;
   Selection.ConvertToTable(Separator:=wdSeparateByTabs, NumColumns:=nCol,
           Format:=wdTableFormatNone, ApplyBorders:=True,
           ApplyShading:=True, ApplyFont:=True, ApplyColor:=True,
           ApplyHeadingRows:=True, ApplyLastRow:=False,
           ApplyFirstColumn:=True, ApplyLastColumn:=False,
           AutoFit:=True, AutoFitBehavior:=wdAutoFitContent,
           DefaultTableBehavior:=wdWord9TableBehavior);
   ReplaseStr(Selection, ";","^l"); //  две строки в табл., раздел. "мягким" конц. стр.
   Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
end;


 
isasa ©   (2006-07-15 11:24) [2]

Да, забыл, может пригодится.

const
   wdFindContinue = 1;
   WdFindWrap = 1;
   wdReplaceAll = 2;
   wdSeparateByTabs = 1;
   wdTableFormatNone = 0;
   wdStory = 6;
   wdLine = 5;
   wdCell = 12;
   wdRowHeightAuto = 0;
   wdAlignRowLeft = 0;
   wdAdjustNone = 0;
   wdGoToTable = 2;
   wdGoToNext = 2;
   wdAlignParagraphCenter = 1;
   wdGoToLine = 3;
   wdGoToFirst = 1;
   wdAlignParagraphRight = 2;
   wdAlignParagraphLeft = 0;
   wdToggle = 9999998;
   wdAlignTabRight = 2;
   wdAlignTabLeft = 0;
   wdTabLeaderDots = 1;
   wdTabLeaderSpaces = 0;
   wdOrientPortrait = 0;
   wdAutoFitContent =1;
   wdWord9TableBehavior = 1;
   wdAlignRowCenter = 1;


 
TStas ©   (2006-07-16 20:13) [3]

К сожалению не годится. Таблица - это заявление на упрощенку. Попытки сохранить в экселе ни к чему хорошему не привели. В том-то и трудность, чтобы по готовой таблице передвигать курсор и что-то в нее вписывать


 
isasa ©   (2006-07-17 08:48) [4]

На D примера нет, но хелп по Word советует, приблизительно так.

This example inserts numbers and text into the first column of the first table in the active document.

num = 90
For Each acell In ActiveDocument.Tables(1).Columns(1).Cells
   acell.Range.Text = num & " Sales"
   num = num + 1
Next acell



 
umbra ©   (2006-07-17 11:02) [5]

var
 table: Variant;
 i, j : integer;
{..................................................}

 table := WordApp.Documents[1].Tables[1];
 for i := 1 to Table.Rows.Count do
   for j := 1 to table.Columns.Count do
      table.Cell[i, j].Range.InsertAfter(IntToStr(i + j));
{.................................}
 table := Unassigned;


 
_Le_   (2006-07-17 13:36) [6]

можно сделать закладки и работать по ним,
можно так
       Doc.Tables.Item(Nt).Cell(i,j).Select;
       App.selection.TypeText("lalala");
i,j - строка/столбец ячейки в таблице
Nt - номер таблицы в документе



Страницы: 1 вся ветка

Текущий архив: 2009.02.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.091 c
2-1231913756
031178
2009-01-14 09:15
2009.02.22
Автофильтр


2-1231757559
Программер
2009-01-12 13:52
2009.02.22
Как выделить item в listbox?


15-1230283845
vajo
2008-12-26 12:30
2009.02.22
Радиоконструктор Экон-1


15-1229507025
nnov
2008-12-17 12:43
2009.02.22
iphone и im apollo


11-1183565514
Delphuk
2007-07-04 20:11
2009.02.22
Работа с TreeView