Конференция "Corba" » Как вписывать что-то в вордовскую таблицу?
 
  • TStas © (14.07.06 20:27) [0]
    Попытки посмотреть свойства TWordApplication пока результатов не дали. С экселем все просто, да и статья по нему есть. А вот как вписать в ячейки именно вордовской таблицы текст?
  • isasa © (15.07.06 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 © (15.07.06 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 © (16.07.06 20:13) [3]
    К сожалению не годится. Таблица - это заявление на упрощенку. Попытки сохранить в экселе ни к чему хорошему не привели. В том-то и трудность, чтобы по готовой таблице передвигать курсор и что-то в нее вписывать
  • isasa © (17.07.06 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 © (17.07.06 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_ (17.07.06 13:36) [6]
    можно сделать закладки и работать по ним,
    можно так
           Doc.Tables.Item(Nt).Cell(i,j).Select;
           App.selection.TypeText('lalala');
    i,j - строка/столбец ячейки в таблице
    Nt - номер таблицы в документе
 
Конференция "Corba" » Как вписывать что-то в вордовскую таблицу?
Есть новые Нет новых   [134430   +3][b:0][p:0.002]