【问题标题】:How to delete carriage return in every cell in excel?如何删除excel每个单元格中的回车?
【发布时间】:2015-03-09 11:48:14
【问题描述】:

我使用此代码从 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”,将字符串设置到单元格中
  • 我建议你尝试使用 \r\n\r

标签: c# excel cell


【解决方案1】:

如果在 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);
}

【讨论】: