So fügen Sie CSV-Daten in die Windows-Zwischenablage mit C # @ e

Was ich versuche zu erreichenMeine App generiert einige tabellarische Datench möchte, dass der Benutzer Excel starten kann und auf "Einfügen" klickt, um die Daten als Zellen in Excel zu platziereWindows akzeptiert ein Format mit dem Namen "CommaSeparatedValue", das mit den APIs verwendet wird. Dies scheint also möglich zu sein.Das Einfügen von Rohtext in die Zwischenablage funktioniert, aber der Versuch, dieses Format zu verwenden, führt nicht zuHINWEIS: Ich kann CSV-Daten korrekt aus der Zwischenablage abrufen. Mein Problem besteht darin, CSV-Daten in die Zwischenablage einzufügen.Was ich versucht habe, funktioniert nicht

Clipboard.SetText ()

System.Windows.Forms.Clipboard.SetText(  
  "1,2,3,4\n5,6,7,8", 
  System.Windows.Forms.TextDataFormat.CommaSeparatedValue
  );

Clipboard.SetData ()

System.Windows.Forms.Clipboard.SetData(
  System.Windows.Forms.DataFormats.CommaSeparatedValue,
  "1,2,3,4\n5,6,7,8", 
  );

In beiden Fällen befindet sich etwas in der Zwischenablage, aber wenn es in Excel eingefügt wird, wird es als eine einzige Zelle mit Textmüll angezeigt: "–§žý; pC¦yVk²ˆû"

Update 1: Problemumgehung mit SetText ()

Wie BFree's Antwort zeigtText setze mit TextDataFormat dient als Workaround

System.Windows.Forms.Clipboard.SetText(  
  "1\t2\t3\t4\n5\t6\t7\t8", 
  System.Windows.Forms.TextDataFormat.Text
  );

Ich habe dies versucht und bestätige, dass das Einfügen in Excel und Word nun ordnungsgemäß funktioniert. In jedem Fall wird es als Tabelle mit Zellen anstelle von Klartext eingefügt.

Noch neugierig, warum CommaSeparatedValue @ inich Arbeiten

Antworten auf die Frage(6)

Ihre Antwort auf die Frage