C# - excel-Add text-formatierte Daten in die Zwischenablage
In C# brauche ich zum kopieren von Daten-grid-Zeilen in excel. Da einige Werte in einer Zeile sind verdoppelt, " -Infinity
" - Werte sind möglich.
Ich habe versucht, kopieren die Zeilen, die DataFormats.UnicodeText
oder DataFormats.Text
aber das gab mir den Ausgang "#NAME?
", wo ich sehen "-Infinity
" (weil excel fügt automatisch eine "=
" vor dem minus in "-Infinity
" aufgrund der standard-Zellen-format).
Wenn ich das format der Zellen auf "Text
" vor dem einfügen, wird excel nicht automatisch einfügen "=
" vor der "-Infinity
". Übrigens, ich brauche nicht zu tun, alle Berechnungen mit double-Werten in excel, so ein text-format wäre in Ordnung für mich.
Also meine Frage ist, wie das kopieren von Daten in die Zwischenablage und in excel einfügen, während die Einstellung, das Zellenformat auf "text".
- Versuchen Sie, Einfügen
1
Registerkarte2
Registerkarte'-Infinity
- Ich kenne diese Lösung, aber ich will nicht zu haben, Apostrophe in den Zellen. Gibt es da nicht die Daten in der Zwischenablage-format aus, die von excel automatisch davon ausgegangen, daß die Daten werden als text interpretiert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnend mit einem Raw-Zwischenablage-viewer können Sie sehen, dass kopieren
in die Zwischenablage Ergebnisse in Excel zu werfen eine große Anzahl von verschiedenen Formaten in die Zwischenablage.
Meisten dieser Dinge sind nicht sehr hilfreich, aber einige von Ihnen sind intern für excel, was bedeutet, es wird (fast) garantieren, dass die Daten identisch sein werden kopiert. Wenn ich du wäre, würde wahrscheinlich Ziel XML-Kalkulationstabelle oder wenn Ihr Gefühl mutig Biff12 die auch xml (sind aber gezippt). Dies wird Ihnen viel mehr Kontrolle über das einfügen als normaler text.
Als Beispiel die oben genannten clip-Ergebnisse in
Also suchen wir ein wenig tiefer noch... Es scheinen die .Net-Clipboard-Klasse hat einige seltsame und nicht so wunderbare Dinge, wenn ich habe versucht, zu verwenden
Clipboard.SetData
schreiben des xml-Codes in die ZwischenablageDie Zwischenablage beginnt mit einer Belastung von Spreu. Dies resultiert selbstverständlich in Excel Ablehnung den Inhalt der Zwischenablage.
Um dies zu umgehen verwende ich die Windows API (user32) - Aufrufe arbeiten mit der Zwischenablage
BIFF12
hat leider einige bin Teile vermischt. Es ist die.xlsb
- Datei-format.Danke für die info. Nach einigem mehr suchen, fand ich, dass Sie verwenden können .Net-clipboard-Klasse, aber Sie können nicht übergeben Sie eine Zeichenfolge an SetData(). Dies funktioniert für mich: