我写了一个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);
提前致谢:)