在c#中使用office interop时得到的格式代码(\r\a)是什么?

在c#中使用office interop时得到的格式代码(\r\a)是什么?,c#,ms-word,office-interop,C#,Ms Word,Office Interop,我正在编写一些代码来迭代Word文档的表(100年代有很多表,但我认为这并不重要),并使用Visual Studio中的c#在另一个Word文档中找到的表中的数据填充它们的字段 基本上是将数据从文档B中的一些表复制到文档A中的表。在迁移数据之前,我需要确保文档B和文档A中的几个单元格匹配,但事实证明,这很困难,因为数据的格式最终会导致错误,因为这两个字段虽然具有相同的可见文本,但并不相等 从我使用的表格中的单个单元格中提取文本 table.Cell(row,col).Range.Text; 但

我正在编写一些代码来迭代Word文档的表(100年代有很多表,但我认为这并不重要),并使用Visual Studio中的c#在另一个Word文档中找到的表中的数据填充它们的字段

基本上是将数据从文档B中的一些表复制到文档A中的表。在迁移数据之前,我需要确保文档B和文档A中的几个单元格匹配,但事实证明,这很困难,因为数据的格式最终会导致错误,因为这两个字段虽然具有相同的可见文本,但并不相等

从我使用的表格中的单个单元格中提取文本

table.Cell(row,col).Range.Text;
但这返回了一个值,如“此单元格的值\r\a” 所以我不得不修改删除

table.Cell(row,col).Range.Replace("\r\a","").Text;

这是可行的,但我想知道是否有另一种不那么麻烦的方法来实现结果,或者\r\a实际上是什么意思。通过谷歌和StackOverflow,我找不到任何回答我问题的答案。谢谢。

字符组合ANSI 13+ANSI 7定义了表格结构(单元格结束/行结束),因此需要从读取表格单元格内容获得的文本字符串中进行修剪。我使用如下函数。使用
Replace
是不可取的,因为表格单元格可能包含额外的ANSI 13(段落标记,您认为是“新行”,但在Word中,这些不仅仅是这些-想想html p vs br,这是Word中的ANSI 11,一个新行)


请看:。谢谢,我相信这是Word的东西,从没想过要检查它是否在c#中。谢谢你的推荐!此序列是非典型的,通常在Windows中使用
“\r\n”
作为回车+换行符换行符。谢谢,这也解决了问题,我理解您对替换过程中可能出现的问题的意思。我很感激!我的研究使我无法找到这些字符组合及其在Word中的功能的任何编译列表。你知道网上有没有现成的?
//cut off ANSI 13 + ANSI 7 from the end of the string coming from a 
//Word table cell
private string TrimCellText2(s As String)
{
    int len = s.Length;
    while (len > 0 && s.Substring(len - 1) == (char)13 || s.Substring(len - 1) == (char)7);
    {
        s = s.Substring(0, Math.Min(len-1, len));   
    }
    return s;
}