Word Automation - 文本,然后是表格,然后是更多文本

时间:2017-03-23 15:58:23

标签: ms-word automation word-vba ole

我需要你的帮助,

我正在尝试使用文本,然后是一个表,然后是更多文本,但是,当前输出是表格,文本,然后是更多文本。

问题:

enter image description here

所需的输出:

enter image description here

有问题的代码:

function test() {

    var wordApp = new ActiveXObject("Word.Application")

    var doc = wordApp.Documents.Add()

        var sel = wordApp.Selection

    sel.TypeText("Text Content1")

    doc.PageSetup.LeftMargin = CentimetersToPoints(0.75)
    doc.PageSetup.RightMargin = CentimetersToPoints(0.75)

    doc.Tables.Add(Range=doc.Range(0, 0), numrows=1, numcolumns=10)
    doc.Tables(1).Range.Font.Size = 9
    doc.Tables(1).Range.Font.Name = 'Arial'
    doc.Tables(1).Rows(1).Range.Font.Bold = true    

    doc.Tables(1).Cell(1,1).Range.Text = '#'
    doc.Tables(1).Cell(1,2).Range.Text = 'File Number'
    doc.Tables(1).Cell(1,3).Range.Text = 'Subject'
    doc.Tables(1).Cell(1,4).Range.Text = 'Branch'
    doc.Tables(1).Cell(1,5).Range.Text = 'Division'
    doc.Tables(1).Cell(1,6).Range.Text = 'Related Documents'
    doc.Tables(1).Cell(1,7).Range.Text = 'Current Status'
    doc.Tables(1).Cell(1,8).Range.Text = 'Assigned To'
    doc.Tables(1).Cell(1,9).Range.Text = 'Action Required'
    doc.Tables(1).Cell(1,10).Range.Text = 'Last Updated'

    doc.Tables(1).AutoFitBehavior(1)


    sel.TypeParagraph()
    sel.TypeText("Text Content2")

    wordApp.Visible = true

    wordApp.Activate()

    wordApp.WindowState = 1
}

1 个答案:

答案 0 :(得分:0)

您明确地将您的表格插入Range(0,0)(文档的最开头),因此它出现在两个文本段落的上方。尝试:

doc.Tables.Add(sel.Range, numrows=1, numcolumns=10)

然后,在您AutoFit后,您可能需要这样做:

doc.Range(doc.Range.End-1).Select()
sel.TypeParagraph()
sel.TypeText("TextContent2")