Мне нужна помощь с небольшим форматированием строк и экранированием. Начиная с этого формата строки:Котировка в строковом формате
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.
Почему бы не давать одиночные кавычки идти? 'L2 =«» ' –
могли бы вы привести пример из фрагментов кода, особенно вещи, которые вы пытались бежать вместе с результатами, которые они производят ? – nozzleman
Я пробовал одинарные кавычки. Результат: = IF (OR (L2 = \ '\'; M2 = \ '\'); \ '\'; L2-M2) – VictorB