C# ExcelPackage Formula Semikolon

Gast #6398235
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
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
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.
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.