我使用以下命名空间:Microsoft.Office.Interop
oDocs
是我用过的Word-Instance
intColumns
是列数(从数据表转换)
intRows
是DataTable中的行数(colName为+1)
Dim rng As Word.Range
rng = oDocs.Application.Selection.Range
rng.Text = strTable
Dim WordTable As Word.Table = rng.ConvertToTable(NumRows:=intRows + 1, _
NumColumns:=intColumns, Separator:=Word.WdSeparatorType.wdSeparatorColon)
对于大多数情况,此代码非常有用,但并非适用于所有情况。 问题:值中的分隔符似乎未使用。所以有时表格没有正确创建。
我知道在Word中使用converttotable方法时可以选择单独的分隔符。我如何以编程方式执行此操作而不是被迫使用五个枚举中的一个?
修改
搞定了! Cindy Meister带我走上正确的道路;
Dim WordTable As Word.Table = rng.ConvertToTable(NumRows:=intRows + 1, NumColumns:=intColumns, Separator:="$")
“Spearator:=”表示你确实放了en enum,你也可以简单地把一个长度为1的String放到那里。我使用'$'
因为它可能没有在DataTable值中使用。
答案 0 :(得分:1)
使用"其他"设置自定义分隔符时这将设置Word应用程序DefaultTableSeparator
。还有一个Enum:
Dim wdApp as Word.Application = oDocs.Application
Dim rng As Word.Range = wdApp.Selection.Range
wdApp.DefaultTableSeparator = "|"
rng.Text = strTable
Dim WordTable As Word.Table = rng.ConvertToTable(NumRows:=intRows + 1, _
NumColumns:=intColumns, _
Separator:=Word.WdTableFieldSeparator.wdSeparateByDefaultListSeparator)