C# 用C在Excel中编写带双引号符号的公式#
我想在Excel单元格中编写一个公式。 我设法写了一个简单的公式,但我对以下公式有一个问题:C# 用C在Excel中编写带双引号符号的公式#,c#,string,excel,office-automation,C#,String,Excel,Office Automation,我想在Excel单元格中编写一个公式。 我设法写了一个简单的公式,但我对以下公式有一个问题: =IF(或(ISBLANK(I20631);ISBLANK(F20631));“”;I20631=F20631) 在我的C#程序中,它尝试了以下方法: ExcelWorksheet.Cells[row, column] = "=IF(OR(ISBLANK(I" + row +");ISBLANK(F" + row +"));\"\";I"+ row +"=F" + row +")"; 我有一个例外,因
=IF(或(ISBLANK(I20631);ISBLANK(F20631));“”;I20631=F20631)
在我的C#程序中,它尝试了以下方法:
ExcelWorksheet.Cells[row, column] = "=IF(OR(ISBLANK(I" + row +");ISBLANK(F" + row +"));\"\";I"+ row +"=F" + row +")";
我有一个例外,因为\“\”(我想是的)
当我在excel单元格中写入时,excel不能将\“作为双引号符号进行解释”
我无法使用visual studio编写字符串,而不编写\“
是否有其他方法可以使用\“?
(我曾尝试过“
,但仍被解释为\”)
提前谢谢大家,
托马斯是的,在字符串前加一个@。这将“禁用”转义字符
\
。唯一启用的是使用两个双引号,这将转换为一个双引号
例如:
"I said: \"Hello!\""
等于:
@"I said: ""Hello!"""
"I said: " + (char)34 + "Hello!" + (char)34
等于:
@"I said: ""Hello!"""
"I said: " + (char)34 + "Hello!" + (char)34
打印时将产生以下内容:
I said: "Hello!"
请注意:无论您如何格式化字符串,调试器都会将您的字符串显示为第一个字符串,并使用
\
。这并不意味着这些反斜杠是字符串的一部分,它只是显示它们的一种方式。正如Roy所提到的,如果您像您那样转义,编译器应该不带反斜杠地获取字符串,但您也可以尝试Martin提到的逐字字符串文字
请参阅这些示例。您遇到了什么异常情况?我认为更可能是
+行
给了您一个异常,而不是\“
。尝试将+行
替换为+行.ToString()
。我将行改为行.ToString()和(char)34但我仍然有以下异常:System.Runtime.InteropServices.COMException未经处理消息=来自HRESULT的异常:0x800A03EC Source=”“ErrorCode=-2146827284 StackTrace:at System.RuntimeType.ForwardCallToInvokeMember(字符串memberName、BindingFlags标志、对象目标、Int32[]aWrapperTypes、MessageData和msgData)–