微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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];现在应该返回表格开始的页面。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。