我正在使用C#代码将sql表中的某些数据导出到excel文件中。将数据导出到excel后,我需要在A列中用单引号引起来。(例如,用=,+开头)
我添加了excel公式来删除字符
将excel公式添加为
=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2)
应用后,如果包含任何无效字符,则需要通过在开头加上单引号来获得相同的文本。 ('= xxx或'+ yyy) 但应用公式时单元格内容变为0
答案 0 :(得分:0)
我已经在虚拟的Excel电子表格中恢复了对该问题的理解(以下屏幕截图)。
A1
,A4
和A7
是数据样本。 A1
是好的数据,不应更改。 A4
和A7
分别以=
和+
开头,因此应根据您的要求进行更改。B
中的C
的相邻单元格中(即B1
的公式显示在C1
中,B2
的公式显示在{{1中}}等。导致公式C2
的公式可能是将公式应用于错误的单元格的结果。在上面的示例中,0
,B3
和B6
都显示B9
。注意公式如何指向空单元格0
,A3
和A6
。如果您意外地看到A9
,请仔细检查您的公式是否引用了正确的单元格。
您列出了公式的示例为0
,假设它是从给定=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2)
的转义字符的C#字符串中获取的?无论如何,在\"
登录=
之后和\"= \"
登录+
之后都会有多余的空间。由于\"+ \"
函数仅返回1个字符,因此多余的空间将始终导致等式失败。至少尝试更改您的公式以删除这些多余的空格,如下所示:
LEFT(...,1)