2016-10-27 6 views
0

Мне нужна помощь с небольшим форматированием строк и экранированием. Начиная с этого формата строки:Котировка в строковом формате

string.Format ("= ЕСЛИ (ИЛИ ({0} =" "; {1] =" ");" "; {0} - {1})" , cell1, CELL2)

Я пытаюсь получить эту строку:

= ЕСЛИ (ИЛИ (L2 = ""; M2 = ""); ""; L2-M2)

Это строка, которую мне нужно вставить в качестве формулы Excel. Я пробовал с string.Format, я пробовал с @"...", я даже попытался объединить строки и избежать кавычек. Независимо от того, что я стараюсь, я всегда получаю эту строку:

= ЕСЛИ (ИЛИ (L2 = \ "\"; М2 = \ "\"), \ "\"; 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

Почему бы не давать одиночные кавычки идти? 'L2 =«» ' –

+0

могли бы вы привести пример из фрагментов кода, особенно вещи, которые вы пытались бежать вместе с результатами, которые они производят ? – nozzleman

+0

Я пробовал одинарные кавычки. Результат: = IF (OR (L2 = \ '\'; M2 = \ '\'); \ '\'; L2-M2) – VictorB

ответ

0

Вам просто нужно добавить еще один (") перед другими.

=IF(OR(L2="""";M2="""");"""";L2-M2) 
+0

это то, как избежать двойных кавычек с помощью excel istself, который не является что ОП просил – nozzleman

0

Существует ошибка в строке {1] = должно быть {1} =. Далее показаны 2 способа вы можете избежать двойные кавычки.

string.Format("=IF(OR({0}=\"\";{1}=\"\");\"\"({0}-{1})", cell1, cell2); 
string.Format(@"=IF(OR({0}="""";{1}="""");""""({0}-{1})", cell1, cell2); 
Смежные вопросы