2009-08-10 15 views
3

Ich habe eine Webanwendung erstellt, die eine Schaltfläche zum Einfügen einer Tabelle enthält. Die Daten werden ursprünglich aus einer Excel-Tabelle kopiert und in mein Formular eingefügt.Excel in die Zwischenablage kopieren Daten abschneiden

Das Problem ist, dass ich nur die angezeigten Daten sehe, nicht die zugrunde liegenden Werte. Wenn der Wert der Zelle beispielsweise 12,223 ist und das Format der Zelle nur 12,2 anzeigt, wird 12,2 in die Zwischenablage verschoben.

Fehle mir hier ein Trick? Kann jemand die vollständigen Daten aus der Zwischenablage ziehen?

Bearbeiten: Es scheint, dass Excel 25 verschiedene Formate in der Zwischenablage zur Verfügung stellt, einschließlich "XML Spreadsheet", das aussieht, als ob es die tatsächlichen Informationen enthält, die ich brauche. Es scheint jedoch, dass nur die Textversion innerhalb des Browsers verfügbar ist. Gibt es ein ActiveX-Steuerelement oder etwas ähnliches, das ich verwenden kann, um diese Daten zu erfassen?

+0

Können Sie einen Teil des Codes veröffentlichen, um zu sehen, wie Sie sich diesem nähern? – JFV

+0

Excel macht das gleiche beim Exportieren in CSV. Es wird alles zerstören, was nicht angezeigt wird. Ich denke, Sie wollen nicht Excel in ein Word-Dokument kopieren und viele Nachkommastellen erhalten. – pjp

+1

@FJV: Wahrscheinlich Strg + A, Strg + C, Alt-Tab, Strg + V :) – pjp

Antwort

5

Der einzige Weg, wie ich es sehen kann, ist einige VBA-Code zu knacken, der die Windows Forms-Objektbibliothek verwendet.

Ich habe ein Codebeispiel gefunden, die standardmäßig Verwendung der Zwischenablage macht

http://www.dailydoseofexcel.com/archives/2004/12/02/putting-text-into-the-windows-clipboard/

dies den sichtbaren Text der Zelle einfach kopieren. Um es der tatsächliche Wert Sie benötigen zur Ausgabe

cell.Text 

zu

cell.Value 

Obwohl dies ändern wird wahrscheinlich vermasseln irgendein Datum, wenn Sie sie haben.

EDIT:

Eigentlich scheinen die Daten ok

+0

Danke. Weißt du, wie das VBA-Skript in Ctrl-C eingreifen oder mit der rechten Maustaste klicken und kopieren kann? Die Benutzer der Tabelle arbeiten für eine Vielzahl von verschiedenen Unternehmen und ihre aktuelle Lösung ist sehr einfach. Ihnen ein neues Kopiersymbol zu geben, würde nicht so gut gehen! –

+0

Wenn Sie auf Extras, Makro, Makros klicken, markieren Sie das Makro und drücken Sie Optionen, dann können Sie es der Kombination Strg + c zuweisen. – pjp

0

kopieren Nachdem Sie die Zelle kopiert haben, mit der rechten Maustaste und wählen Paste-Special, dann wählen Sie die Werte Option unter Einfügen. Dies fügt den vollen Wert ein.

+2

Das Problem ist, dass Paste Special in anderen Anwendungen nicht verfügbar scheint. – pjp

+0

Ich denke, Sie könnten Folgendes tun: Kopieren Sie die Excel-Daten, fügen Sie spezielle in ein neues Blatt und dann kopieren Sie das in die Zwischenablage. – pjp

+0

Sie haben Recht, nur auf Excel beschränkt. –

0

Sofern Sie gerne ein zusätzliches Blatt mit den Daten enthalten formatiert Sie auch die folgenden

Sub CopyPasteSpecialCopy() 

    'Clear out temp destination 
    Sheets("CopyPasteSheet").Select 
    Cells.Select 
    Selection.ClearContents 

    'Copy data 
    Sheets("DataSheet").Select 
    Cells.Select 
    Application.CutCopyMode = False 
    Selection.Copy 

    'Paste data 
    Sheets("CopyPasteSheet").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Cells.Select 
    Application.CutCopyMode = False 

    'Put it onto the clipboard 
    Selection.Copy 

End Sub 

kopieren konnte tun Obwohl ich nicht eine Option für das Einfügen von XML nur Werte sehen können.

Wieder könnte dieses Makro an die Tastenkombination Strg + C angehängt werden.

+0

Ich kann nichts auf der Excel-Seite der Dinge tun. Es muss eine Browser-Lösung sein. –

+0

Wenn Sie keine Änderungen an Excel/VBA vornehmen können, besteht die einzige Möglichkeit darin, dem Benutzer zu erlauben, das Blatt hochzuladen und sich damit in Ihrer Anwendung zu befassen. Sie könnten das Excel-Blatt mit Apache POI analysieren. – pjp

0

Vorausgesetzt, dass Sie die Excel-Tabelle nicht ändern können, sieht es so aus, als ob Sie feststecken. Das Problem besteht darin, dass die Windows-Zwischenablage den Browser nicht erkennt, da er nur Text aus dem Einfügen akzeptieren kann. Aus diesem Grund fügt es es als eine reine Texttabelle ein, die im Grunde nur die visuelle Darstellung der Daten ist, die sich Ihnen präsentiert.

Wenn Sie eine ActiveX-Komponente für die Seite erstellt haben, die Tabellenkalkulationsdaten ausschließen könnte, sollte die Excel-Paste funktionieren, denke ich. Eine reine Browser-JavaScript-Implementierung wird jedoch nicht das tun, was Sie brauchen.

Verwandte Themen