C# ExcelPackage Formula Semikolon

Gast #6398235
Lesenswert?

Hallo zusammen,

ich habe das "ExcelPackage" in mein Visual Studio Projekt eingebunden 
und möchte per C# eine Exceltabelle generieren. In einigen Zellen in der 
Tabelle möchte ich die folgende Formel einfügen:
1
 worksheet.Cells[row, 10].Formula = $"=WENN(UND(F{row}=\"\";G{row}=\"\";H{row}=\"\");A{row};VERKETTEN(\"=\";F{row};WENN(G{row}=\"\";\"\";WIEDERHOLEN(\"_\";3-LÄNGE(G{row})));G{row};\"-\";H{row}))";

Das Problem ist: Das Semikolon wird als "|" Zeichen in die Tabelle 
eingefügt und es werden dann Errors in den Zellen angezeigt. Wo mache 
ich falsch?

Gruß
Gast #6398420
Lesenswert?

Irgend W. schrieb:
> Guelay schrieb:
>> Wo mache
>> ich falsch?
>
> Eventuell benötigt das semikolon ein escape vorran. Ausprobieren...

hab den string in einer variable geschrieben mit im Debugger angeschaut. 
Im Debugger sieht alles richtig aus. Semikolon benötigt ein Escape im 
String. Wenn ich die Exceltabelle öffne dann sehe ich in den Zellen 
statt Semikolons die | Zeichens und es wird error ausgegeben. Wie kann 
das sein?
Gast #6398437
Lesenswert?

Guelay schrieb:
> Irgend W. schrieb:
>> Guelay schrieb:
>>> Wo mache
>>> ich falsch?
>>
>> Eventuell benötigt das semikolon ein escape vorran. Ausprobieren...
>
> hab den string in einer variable geschrieben mit im Debugger angeschaut.
> Im Debugger sieht alles richtig aus. Semikolon benötigt ein Escape im
> String. Wenn ich die Exceltabelle öffne dann sehe ich in den Zellen
> statt Semikolons die | Zeichens und es wird error ausgegeben. Wie kann
> das sein?

Semikolon benötigt kein escape im string.
#6398494
Lesenswert?

Guelay schrieb:
> Irgend W. schrieb:
>> Guelay schrieb:
>>> Wo mache
>>> ich falsch?
>>
>> Eventuell benötigt das semikolon ein escape vorran. Ausprobieren...
>
> hab den string in einer variable geschrieben mit im Debugger angeschaut.
> Im Debugger sieht alles richtig aus. Semikolon benötigt ein Escape im
> String. Wenn ich die Exceltabelle öffne dann sehe ich in den Zellen
> statt Semikolons die | Zeichens und es wird error ausgegeben. Wie kann
> das sein?

Ich würde folgende Sachen probieren:

1. Formel in Variable speichern, in die Zelle schreiben,
   wieder auslesen und mit der Variable vergleichen.
   Ich vermute die Excel-Komponente verändert da was
   (vermutlich läuft da ein Parser für die Formel).

2. Formel von Hand in die Zelle in Excel eintragen,
   funktioniert das dann?

3. Ersetze mal die ';' durch ',' und teste.

Für mich sieht der String (als String in C#) korrekt
aus. Ich habe allerdings kaum Erfahrungen mit Formeln
in Excel und weiß nicht, ob die Formel korrekt ist.

merciless

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren