问题描述
我需要查明表格单元格是否分布在一页以上。我的想法只是获取行开始和结束的页码。为了获取开始和结束页面,我编写了以下两种方法:
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];现在应该返回表格开始的页面。