C# MS Word:如何获取表格单元格开始和结束的页码?

问题描述

我需要查明表格单元格是否分布在一页以上。我的想法只是获取行开始和结束的页码。为了获取开始和结束页面,我编写了以下两种方法

 public static long GetCellStartPageNo(Word.Cell cell)
    {
        long result = -1;
        cell.Select();
        cell.Application.Selection.Start = 0;
        cell.Application.Selection.End = 1;
        result = cell.Application.Selection.information[Word.Wdinformation.wdActiveEndPageNumber];
        return result;
    }



public static long GetCellEndPageNo(Word.Cell cell)
    {
        long result = -1;
        cell.Select();
        int len = cell.Application.Selection.Text.Length;
        cell.Application.Selection.Start = 0;
        cell.Application.Selection.End = len - 1;
        result = cell.Application.Selection.information[Word.Wdinformation.wdActiveEndPageNumber];
        return result;
    }

这两种方法的思路很简单:选中单元格的第一个字符,获取选择范围的页码(=>起始页),然后选中单元格的最后一个字符,再次获取选择范围的页码( => 结束页)。不幸的是,这两种方法总是返回 1(=page 1)作为结果。我做错了什么?

提前致谢, 迈克尔

解决方法

我认为问题出在这一部分

cell.Application.Selection.Start = 0;
cell.Application.Selection.End = 1;

Selection.start 0 是文档的开头,而不是表格的开头。

你需要类似的东西

cell.select();
cell.Application.Selection.End=cell.Application.Selection.Start+1;

cell.Application.Selection.Information[Word.WdInformation.wdActiveEndPageNumber];现在应该返回表格开始的页面。