Word 自动化 - 文本,然后是 table,然后是更多文本

Word Automation - Text, then table, then more text

我需要你的帮助,

我正在尝试输入文本,然后是 table,然后是更多文本,但是,当前输出是 table、文本,然后是更多文本。

问题:

期望的输出:

有问题的代码:

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
}

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

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

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

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