2009-07-24 6 views
4

Ich möchte Tabellendaten aus meiner App nach Excel kopieren. Der einfachste Weg, den ich bis jetzt gefunden habe, war die Verwendung von HTML als Zwischenformat. Nach dem Lesen von this question konnte ich die Formatierung meiner Daten beibehalten. Gibt es eine Möglichkeit, auch die Breite der Säulen beizubehalten? Ich habe versucht, den Stil auf verschiedene Arten zu setzen:Importieren von HTML-Tabelle in Excel über die Zwischenablage

<td style="width:100;">...</td> 
<td style="width:100px;">...</td> 
<td style="width:100pt;">...</td> 

aber ohne Erfolg. Irgendwelche Ideen?

Gibt es für Bonuspunkte einen Ort, an dem ich eine Beschreibung des HTML-Formats von Excel finden kann?

[EDIT] Update: Ich habe ein kleines Tool geschrieben, um den Übertragungstyp "XML Stylesheet" auszugeben. Dies ist ein eigenständiges XML-Dokument. Es enthält auch Spaltenbreiten. Aber ein schneller Test zeigt, dass Excel die Spaltenbreiten komplett ignoriert, auch wenn ich & einfügen zwischen zwei Tabellen :(Also wenn jemand mir eine Option sagen kann, um dieses Verhalten zu ändern, ist es einfach nicht möglich, die Spalten beim Einfügen zu formatieren.

[EDIT2] Ich habe einen Weg gefunden.Nach dem Einfügen, erhalten Sie ein kleines Symbol in der unteren rechten Ecke, die aussieht wie die Schaltfläche Einfügen in der Symbolleiste.Hier können Sie einige Optionen auswählen.Eine ist "Breite beibehalten die Quelltabelle“.

Antwort

4

Ich empfehle das XML-Spreadsheet-Format (das alte 2002/2003 - einfacher zu generieren) über Excel die Möglichkeit, HTML zu importieren.

Ich habe sowohl geschrieben und Bibliotheken geschrieben, um beide direkt von .NET zu exportieren, und das XML-Format ist definitiv weniger wahrscheinlich, dass Sie Schlaf verlieren.

+0

Können Sie einen Link mit einer Erklärung zu diesem Format posten? –

+1

http://msdn.microsoft.com/en-us/library/bb226687(office.11).aspx http://msdn.microsoft.com/en-us/library/bb226693(office.11).aspx – Edo

2

können Sie‚Rundreise‘von Excel nach HTML und zurück, also warum nicht einer einfachen Arbeitsmappe in Excel und speichern Sie es als HTML, dann die Ergebnisse untersuchen?

erstellen 210

EDIT: entfernt Unsinn über das Abfangen des "Einfügen" Ereignisses; Ich habe gerade festgestellt, dass du auf der Seite der "Kopie" stehst, nicht auf der Seite "Einfügen".

+0

Gute Idee. Das hat mir wirklich geholfen, ein paar Dinge herauszufinden ... außer der Spaltenbreite. –

3

nicht verwenden „Stil“ noch „px“, Beispiel:

<table border="1" cellpadding="5" cellspacing="0"> 
<tr> 
    <td width="100">test</td> 
    <td width="100">test</td> 
    <td width="100">test</td> 
    <td width="500">test</td> 
</tr> 
</table> 
+0

Jetzt muss ich nur einen Weg finden, den Browser diesen Wert ignorieren zu lassen, damit das Layout nicht beschädigt wird ... :-) –

1

wie ein Bug scheint, wird die Zwischenablage mit der Spaltenbreite nicht eingestellt.

Die Lösung (oder die Problemumgehung) besteht darin, die HTML-Datei in Excel zu öffnen. Hier

ist ein Repro:

Kopieren und fügen Sie ihn in Excel:

<html><body><center> 
<table border="1" cellpadding="0" cellspacing="0"> 
<tr> 
<td width=64><strike>testing</strike></td> 
<td width=64>one</td> 
<td width=233>two</td> 
<td width=64>three</td> 
</tr> 
</table></center></body></html> 

Hat nicht die Spaltenbreite gesetzt!

Speichern Sie den obigen HTML-Code in einer Datei und öffnen Sie ihn in Excel. Die Spaltenbreiten sind korrekt eingestellt.