我得到嵌套表,但我需要分隔表(Netoffice,Word)

时间:2015-06-12 07:04:57

标签: wpf .net-4.0 ms-word netoffice

我写了一个WPF-Application来打印带有一些表格的word文档,它可以工作,但我得到的是嵌套表而不是分隔表。

我正在查看不同的帖子,但它们都没有很好地工作,例如:

同样,我尝试用单词录制一个宏,这给了我

Selection.MoveDown Unit:=wdLine, Count:=1

我把它变成了:

wordApplication.Selection.MoveDown(WdUnits.wdLine, 1);

甚至:

wordApplication.Selection.MoveDown(WdUnits.wdLine, 11);

这是我原来代码的开头:

using System.Drawing;
using System.Reflection;
using NetOffice;
using Word = NetOffice.WordApi;
using NetOffice.WordApi.Enums;
using System.Globalization;
using System.Windows;
...
Word.Application wordApplication ...
Word.Document newDocument = wordApplication.Documents.Add();

这是第一张表:

        Word.Table table = newDocument.Tables.Add(wordApplication.Selection.Range, 6, 2);

        // insert some text into the cells
        table.Cell(1, 1).Select();
        wordApplication.Selection.TypeText("...");
...

这是第二个表,但是文本会进入我的第一个表格的最后一个单元格(最后一个单元格):

            Word.Table tableSchool = newDocument.Tables.Add(wordApplication.Selection.Range, 4, 2, WdDefaultTableBehavior.wdWord9TableBehavior);
        tableSchool.Cell(1, 1).Select();
        wordApplication.Selection.TypeText("...");
...

更新。 6月17日,晚上9点

我找到了一些东西,它把光标放在了表格的外面,但它是在文件的开头,这不应该是:

    wordApplication.Selection.GoToNext(WdGoToItem.wdGoToSection);
    wordApplication.Selection.TypeText("GoToNext");

更新。 6月17日,晚上9:30

使用“InsertAfter”工作,取决于我放置此语句的位置,但这仍然无法解决我的问题。

    wordApplication.Selection.Range.InsertAfter("test2");

    Word.Table table = newDocument.Tables.Add(wordApplication.Selection.Range, 4, 2, WdDefaultTableBehavior.wdWord9TableBehavior);

这应该将“wordApplication.Selection.Range”调整为某种“InsertAfter”,结合我发现的两件事。

更新时间为18.06 07:30 a.m

如果我使用它,我会得到一个“ComException”(宏录音机向我展示了这个):

wordApplication.Selection.MoveRight(WdUnits.wdCharacter, 1);
        wordApplication.Selection.TypeParagraph();

更新18.06 07:45 a.m

然后我找到了this,这非常接近我的目标(但是它取代了上一个表格的最后一个单元格):

            wordApplication.Selection.EndKey(WdUnits.wdStory, WdMovementType.wdExtend);
        wordApplication.ActiveWindow.Selection.PasteAndFormat(WdRecoveryType.wdPasteDefault);

提前致谢:)

0 个答案:

没有答案