我有Word文档,需要从中提取数据,包括表格。但是,在许多情况下,对于许多页面而言,一个表实际上已经创建为多个表。我正在使用Office 2016。
所以:
document.Tables[1] ; Table #1 - Page 1
document.Tables[2] ; Table #1 - Page 2
document.Tables[3] ; Table #2 - Page 2
我是否可以在这些表对象上使用某些属性来确定以下任何属性:
我可以检索表的宽度/高度,但检查MSDN here的可用属性似乎没有任何明显的方法可以引用更具体的位置。
答案 0 :(得分:1)
Range
对象具有Information
属性,您可以使用参数来返回页码。如果这是C#,因为该语言不喜欢使用带属性的参数,所以它是get_Information方法。 这就像
那样Word.Range rngRow1 = Table1.Rows[1].Range;
int pgNr = rngRow1.get_Information(Word.WdInformation.wdActiveEndAdjustedPageNumber);
Range
,以便在该范围之后放置“焦点”。对于表格,将焦点放在表格之后,在下面的段落中。请注意,在最新版本的Word中,此段落是必需的,并带有一些表格格式属性。当然,可以有多个段落,有很多行...... 在两个表之间获取Range的一种可能性如下所示。获得Range
后,您可以分析它包含的内容(或者只是将其删除以合并两个表)。
Word.Range rngBetweenTables = Table1.Range;
object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;
rngBetweenTables.Collapse(ref oCollapseEnd);
Word.Range rngStartOfNextTable = Table2.Range;
object oCollapseStart = Word.WdCollapseDirection.wdCollapseStart;
rngStartOfNextTable.Collapse(ref oCollapseStart);
//Extends the Range to the specified position
//Think of it like holding the Shift key, then clicking to extend a selection
rngBetweenTables.End = rngStartOfNextTable.Start - 1;