如何在Excel中删除每个单元格中的回车符?

6
我使用这段代码从Excel中删除每个单元格的换行符:

 Microsoft.Office.Interop.Excel.Range cells = reportSheet.Cells;
 cells.Replace("\n", "",
               Microsoft.Office.Interop.Excel.XlLookAt.xlWhole,
               Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, false,
               false, true, false);

我收到一条信息:

"Microsoft Office Excel找不到要替换的任何数据。检查您的搜索格式和条件是否定义正确。如果您确定此工作簿中存在匹配的数据,则可能在受保护的工作表上。Excel无法替换受保护工作表上的数据。"

有人知道如何在Excel单元格中更改回车符吗?


尝试这个:从单元格读取字符串,替换字符串中的“\n”,将字符串设置到单元格中。 - DrKoch
我建议你尝试使用 \r\n\r 进行实验。 - Gary's Student
1个回答

6
如果在Excel中进行数据输入并按下Alt+Enter键,则会插入一个换行符。然而,如果输入被写入单元格作为Windows换行符(CR + LF),它将以Excel完全相同的方式显示。
确保替换所有换行符的最安全方法是循环遍历所有可能性并逐个替换:
Microsoft.Office.Interop.Excel.Range cells = reportSheet.Cells;
// Cycle through each newline code and replace.
foreach (var newline in new string[] { "\r\n", "\r", "\n" })
{
    cells.Replace(newline, "",
                  Microsoft.Office.Interop.Excel.XlLookAt.xlPart, // Use xlPart instead of xlWhole.
                  Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, false,
                  false, true, false);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接