我写了一个 WPF 应用程序来打印一个包含一些表格的 word 文档,它可以工作,但我得到的是嵌套表格而不是分隔表格。
我正在查看不同的帖子,但它们都没有很好地工作,例如:
同样,当我尝试用 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
如果我使用它,我会得到一个“ComException”(宏记录器向我展示了这个):
wordApplication.Selection.MoveRight(WdUnits.wdCharacter, 1);
wordApplication.Selection.TypeParagraph();
更新于 18.06 上午 07:45
然后我找到了这个,它非常接近我的目标(但它替换了上表的最后一个单元格):
wordApplication.Selection.EndKey(WdUnits.wdStory, WdMovementType.wdExtend);
wordApplication.ActiveWindow.Selection.PasteAndFormat(WdRecoveryType.wdPasteDefault);
提前致谢 :)