C# Fügen Sie den Inhalt der Zwischenablage in ein Excel-Arbeitsblatt
Wie der Titel sagt, versuche ich tatsächlich einfügen, was in meiner Zwischenablage in ein Excel.
Habe ich folgenden code:
Clipboard.SetText(html);
sheet.Range("A1").Value = Clipboard.GetText();
Tatsächlich die variable, die html enthält ein html-code-Datei, wenn ich es Tue, mag ich es eigentlich einfügen, nur den html-Inhalt in den Bereich, aber wenn ich öffnen Sie Excel, und nicht von hand machen, Inhalte Einfügen... ich kann fügen Sie den html-code, aber es wandelt den code in eine echte Tabelle statt einer html-code, und dies ist das eigentliche Ergebnis, dass ich will, ohne es von hand.
Excel.Bereich.Kopieren() einfügen mit Zwischenablage.GetText()
Anderen Weg war:
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
foreach (Excel.Shape shape in sheet.Shapes)
{
Clipboard.SetText(html);
//doesn't work:
sheet.Range("A1").Value = sheet.PasteSpecial(Clipboard.GetText());
sheet.PasteSpecial(Clipboard.GetText()); //throws error
}
}
Aber dieser Weg nicht auch funktionieren. Ich Mach es mit einer html -> Bild und Bild einfügen, sondern echte Werte, sollten zugänglich sein und nicht ein Bild.
Hoffe mir kann jemand klären, wie es zu lösen.
Dank.
InformationsquelleAutor mike27015 | 2013-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, zu verwenden
SetData
stattSetText
:kopieren die Zeichenfolge in die Zwischenablage, und markieren Sie Sie als HTML (wenn dies nicht funktioniert, in Ihrem Fall
SetText
kann ok sein).Den Aufruf
PasteSpecial
für Sie den Zellbereich, wo Sie wollen einfügen, um zu geschehen, unter Berücksichtigung Ihrer Kommentare:Beachten Sie, dass die Zuordnung einer Zelle einen neuen Wert mit dem
Value
Eigenschaft nie kopiert alle Formate etc.Ich habe es mit xlPasteSpecialOperationAdd , weil ich bereits bestehende Werte aus einer Vorlage ... Und möchten, führen Sie Berechnungen aus früheren Werte, wenn ich es verlassen, mit xlPasteSpecialOperationNone, die alten Werte werden beibehalten, aber immer noch eine Ausnahme-Fehler. RTFM gelesen wurde, da Sie selbst gab mir den richtigen Betrieb.
Nur für das kopieren klappt es mit der Zwischenablage.SetText(html); Blatt.Range("A1").PasteSpecial(); Er ist nicht wie die Zwischenablage.SetData(DataFormats.Htlm, html);
ok, veränderte sich meine Antwort entsprechend.
InformationsquelleAutor Doc Brown
Konnte ich die kopierten Zellen aus der Zwischenablage mithilfe
Dann, nachdem ich einige kopieren-einfügen durch meinen code, ich habe es zurück mit
Happy coding!
InformationsquelleAutor Zlatin Todorinski
Verwenden:
xlWorkSheet.PasteSpecial(Fehlen.Wert, false, false, Fehlt.Wert Fehlt.Wert Fehlt.Wert Fehlt.Wert);
//unten ist der komplette code
InformationsquelleAutor Art
meine einfache C# - Copy & Paste ( aus-Eingang/Blatt[1] - Ausgabe/Blatt[1] )
InformationsquelleAutor Standa