我需要一些字符串格式化和转义的帮助。 从这个字符串格式开始:
string.Format(“= IF(OR({0} =”“; {1] =”“);”“; {0} - {1})”,cell1,cell2)
我正在尝试获取此字符串:
= IF(OR(L2 = “”; M2 = “”); “”; L2-M2)
这是一个我需要作为excel公式插入的字符串。我尝试了string.Format
,我尝试过@"..."
,我甚至尝试连接字符串片段并转义引号。
无论我尝试什么,我总是得到这个字符串:
= IF(OR(L2 = \ “\”; M2 = \ “\”); \ “\”; L2-M2)
当我尝试打开它时,这会破坏我的excel文件。我不明白为什么要留在那里。
任何提示都会受到欢迎。感谢。
int atCol = ws.Dimension.End.Column + 1;
//insert the header
ws.Cells[1, atCol].Value = "Diff. Quote letzte 2 Jahre";
ws.Cells[1, atCol].Style.WrapText = true;
for (int i = 2; i<=ws.Dimension.End.Row; i++)
{
var cell1 = ws.Cells[i, atCol + 1].Address;
var cell2 = ws.Cells[i, atCol + 2].Address;
//ws.Cells[i, atCol].Formula = string.Format("=IF(OR({0}=\"{2}\";{1}=\"{2}\");\"{2}\";{0}-{1})", cell1, cell2, string.Empty);
//ws.Cells[i, atCol].Formula = string.Format(@"=IF(OR({0}="";{1}="");"";{0}-{1})", cell1, cell2);
//string formula = string.Format(@"=IF(OR({0}="""";{1}="""");"""";{0}-{1})", cell1, cell2);
//string formula = @"=IF(OR(" + cell1 + "=\"\";" + cell2 + "=\"\");\"\";" + cell1 + "-" + cell2 + ")";
string formula = string.Format("=IF(OR({0}='';{1}='');'';{0}-{1})", cell1, cell2);
ws.Cells[i, atCol].Formula = formula;
}
我正在使用Win10,VS2015,.Net 4.0和EPPLUS框架进行Excel操作。
答案 0 :(得分:0)
你只需要在其他人之前添加一个(&#34;)。
=IF(OR(L2="""";M2="""");"""";L2-M2)
答案 1 :(得分:0)
字符串中有一个错误{1] =应该是{1} =。以下显示了两种可以转义双引号的方法。
string.Format("=IF(OR({0}=\"\";{1}=\"\");\"\"({0}-{1})", cell1, cell2);
string.Format(@"=IF(OR({0}="""";{1}="""");""""({0}-{1})", cell1, cell2);