替换Excel单元格中的字符

时间:2019-04-03 00:49:36

标签: c# excel-formula

我正在使用C#代码将sql表中的某些数据导出到excel文件中。将数据导出到excel后,我需要在A列中用单引号引起来。(例如,用=,+开头)

我添加了excel公式来删除字符

将excel公式添加为

=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2)

应用后,如果包含任何无效字符,则需要通过在开头加上单引号来获得相同的文本。 ('= xxx或'+ yyy) 但应用公式时单元格内容变为0

1 个答案:

答案 0 :(得分:0)

我已经在虚拟的Excel电子表格中恢复了对该问题的理解(以下屏幕截图)。

虚拟Excel电子表格:

  • 单元格A1A4A7是数据样本。 A1是好的数据,不应更改。 A4A7分别以=+开头,因此应根据您的要求进行更改。
  • B中的
  • 单元格对数据样本单元格具有不同的公式。使用的确切公式显示在列C的相邻单元格中(即B1的公式显示在C1中,B2的公式显示在{{1中}}等。

Excel spreadsheet with test data and formulas

观察:

  1. 导致公式C2的公式可能是将公式应用于错误的单元格的结果。在上面的示例中,0B3B6都显示B9。注意公式如何指向空单元格0A3A6。如果您意外地看到A9,请仔细检查您的公式是否引用了正确的单元格。

  2. 您列出了公式的示例为0,假设它是从给定=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2)的转义字符的C#字符串中获取的?无论如何,在\"登录=之后和\"= \"登录+之后都会有多余的空间。由于\"+ \"函数仅返回1个字符,因此多余的空间将始终导致等式失败。至少尝试更改您的公式以删除这些多余的空格,如下所示:

LEFT(...,1)
  1. 如果这些解决方案均无济于事,您是否愿意像上面一样,将Excel文件的片段与文本中显示的公式共享?这可能有助于我们更轻松地诊断问题。