Wie kann ich Tabellen von einer Webseite nach Excel exportieren? [Geschlossen]

97

Wie kann ich Tabellen von einer Webseite nach Excel exportieren? Ich möchte, dass der Export alle Formatierungen und Farben enthält.

code511788465541441
quelle
9
Am einfachsten ist es wahrscheinlich, ein HTML-Dokument zu exportieren, das Excel öffnen kann.
Pekka
@ Pekka Ich habe das versucht, es verliert alle Formatierung / CSS / Spaltengröße usw.
Code511788465541441
3
@user wo deklarierst du Spaltengrößen und so? Ich bin nicht sehr vertraut mit dem Exportieren von Daten nach Excel, aber Sie müssen sie möglicherweise inline deklarieren, dh<td style="background-color: ...
Pekka
@user - Hier gibt es mindestens zwei verschiedene Probleme: 1) Formatieren der Daten, damit sie in Excel korrekt angezeigt werden, und 2) Exportieren der Daten mit Javascript, damit der MIME-Typ korrekt festgelegt wird, wodurch der Benutzer aufgefordert wird, die Datei zu speichern . Versuchen Sie, beide Probleme zu lösen?
Nrabinowitz
10
Warum wurde dies als "meinungsbasiert" angesehen? Dies ist eine sehr einfache technische Frage.
Brandizzi

Antworten:

75

Der sauberste und einfachste Export von Tabellen nach Excel ist mit Abstand das Plugin Jquery DataTables Table Tools. Sie erhalten ein Raster, in dem Ihre Daten sortiert, gefiltert, bestellt und seitenweise angezeigt werden. Mit nur wenigen zusätzlichen Codezeilen und zwei kleinen Dateien können Sie nach Excel, PDF, CSV, in die Zwischenablage und in den Drucker exportieren.

Dies ist der gesamte Code, der benötigt wird:

  $(document).ready( function () {
    $('#example').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "sSwfPath": "/swf/copy_cvs_xls_pdf.swf"
        }
    } );
} );

Schnelle Bereitstellung, keine Browsereinschränkungen, keine serverseitige Sprache erforderlich und vor allem sehr einfach zu verstehen. Es ist eine Win-Win-Situation. Das einzige, was es jedoch einschränkt, ist die strikte Formatierung von Spalten.

Wenn Formatierung und Farben absolute Dealbreaker sind, ist die einzige 100% zuverlässige, browserübergreifende Methode, die ich gefunden habe, die Verwendung einer serverseitigen Sprache, um die richtigen Excel-Dateien aus Ihrem Code zu verarbeiten. Meine bevorzugte Lösung ist PHPExcel. Es ist die einzige, die ich bisher gefunden habe und die den Export mit Formatierung in eine MODERNE Version von Excel aus jedem Browser positiv handhabt, wenn Sie ihm nur HTML geben. Lassen Sie mich jedoch klarstellen, dass es definitiv nicht so einfach ist wie die erste Lösung und auch ein bisschen wie ein Ressourcenfresser. Auf der positiven Seite kann es jedoch auch direkt als PDF ausgegeben werden. Und sobald Sie es konfiguriert haben, funktioniert es jedes Mal.

UPDATE - 15. September 2016: TableTools wurde zugunsten eines neuen Plugins namens " Buttons " eingestellt. Diese Tools erfüllen dieselben Funktionen wie die alte TableTools-Erweiterung, sind jedoch weitaus einfacher zu installieren und verwenden HTML5-Downloads für moderne Browser. mit der Fähigkeit, auf den ursprünglichen Flash-Download für Browser zurückzugreifen, die den HTML5-Standard nicht unterstützen. Wie Sie den vielen Kommentaren entnehmen können, seit ich diese Antwort im Jahr 2011 veröffentlicht habe, wurde die Hauptschwäche von TableTools behoben. Ich kann DataTables immer noch nicht genug empfehlen, um große Datenmengen einfach zu verarbeiten, sowohl für den Entwickler als auch für den Benutzer.

bpeterson76
quelle
2
DataTables ist vollständig Javascript. Nur das TableTools-Element verwendet Flash und ist winzig. Ich würde Flash NIEMALS freiwillig in einem meiner Produkte verwenden!
bpeterson76
16
Ich verstehe und stimme zu. Trotzdem - so winzig es auch sein mag - gibt es dort ein SWF-Objekt, das ohne Flash nicht ausgeführt werden kann.
Magma
8
Eine so großartige Lösung, aber so schade, dass es Flash braucht.
jnthnclrk
Hallo, kannst du ein vollständiges Beispiel zeigen? Ich bin zu noob, um es ohne das Beispiel zum Laufen zu bringen!
NoobTom
1
@PramodGaikwad, nein, Datatables würden die NG-Tabelle ersetzen. Sie haben praktisch die gleiche Funktionalität, aber Datatables ist weitaus ausgereifter und verfügt über viele, viele weitere Funktionen. Es gibt eine Ausgründung von Datatables, die speziell für Angular erstellt wurden: l-lin.github.io/angular-datatables/#/welcome
bpeterson76
42

Vor langer Zeit habe ich festgestellt, dass Excel eine HTML-Datei mit einer Tabelle öffnen würde, wenn wir sie mit dem Excel-Inhaltstyp senden. Betrachten Sie das obige Dokument:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Java Friends</title>
</head>
<body>
  <table style="font-weight: bold">
    <tr style="background-color:red"><td>a</td><td>b</td></tr>
    <tr><td>1</td><td>2</td></tr>
  </table>    
</body>
</html>

Ich habe das folgende Lesezeichen darauf ausgeführt:

javascript:window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);

und tatsächlich habe ich es als Excel-Datei heruntergeladen. Allerdings habe ich nicht das erwartete Ergebnis erhalten - die Datei geöffnet war in OpenOffice.org Writer. Das ist mein Problem: Ich habe kein Excel auf diesem Computer, daher kann ich es nicht besser ausprobieren. Außerdem hat dieser Trick vor mehr oder weniger sechs Jahren mit älteren Browsern und einer antiken Version von MS Office funktioniert, sodass ich wirklich nicht sagen kann, ob er heute funktionieren wird.

Wie auch immer, im obigen Dokument habe ich eine Schaltfläche hinzugefügt, mit der das gesamte Dokument theoretisch als Excel-Datei heruntergeladen werden kann:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Java Friends</title>
</head>
<body>
  <table style="font-weight: bold">
    <tr style="background-color:red"><td>a</td><td>b</td></tr>
    <tr><td>1</td><td>2</td></tr>
    <tr>
      <td colspan="2">
        <button onclick="window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);">
            Get as Excel spreadsheet
        </button>
      </td>
    </tr>
  </table>    
</body>
</html>

Speichern Sie es in einer Datei und klicken Sie auf die Schaltfläche. Ich würde gerne wissen, ob es funktioniert hat oder nicht, deshalb bitte ich Sie, einen Kommentar abzugeben , auch wenn Sie sagen, dass es nicht funktioniert hat.

brandizzi
quelle
11
Es hat funktioniert, indem am Ende ein Ersatz hinzugefügt wurde: window.open ('data: application / vnd.ms-excel' + document.getElementById ('table'). OuterHTML.replace (/ / g, '% 20')) ;;
VSP
6
Alternativer Weg (empfohlen): window.open ('data: application / vnd.ms-excel' + encodeURIComponent (document.getElementById ('table'). OuterHTML));
VSP
5
Funktioniert perfekt in Firefox, wickeln Sie Ihre Tabelle in ein Div und rufen Sie dann die ID mit document.getElementById('id').innerHTMLauf, um nur die Tabelle selektiv abzurufen. Andernfalls werden alle Ihre Inhalte in die Tabelle exportiert. Funktioniert aber nicht im alten IE, öffnet nur ein neues Fenster mit dem gesamten HTML im Titel
Abraham Brookes
1
Diese einfache Lösung funktioniert einwandfrei. Sehen Sie sich diese doppelte Frage an, um den Dateinamen und einen Arbeitsblattnamen festlegen zu können. Gleiche Art der Lösung; stackoverflow.com/questions/17126453/…
Espen Schulstad
2
Dies funktioniert in Office 365 aufgrund strengerer Sicherheitsmaßnahmen nicht mehr. Die Excel-Datei muss ein WAHRES Excel-Dokument sein, sonst wird beim Öffnen ein Fehler ausgegeben.
Phil
12

Es ist möglich, das alte Excel 2003-XML-Format (vor OpenXML) zu verwenden, um eine Zeichenfolge zu erstellen, die das gewünschte XML enthält. Auf der Clientseite können Sie dann einen Daten-URI verwenden, um die Datei mit dem XSL-MIME-Typ zu öffnen oder die Datei zu senden an den Client unter Verwendung des Excel-Mimetyps "Content-Type: application / vnd.ms-excel" von der Serverseite.

  1. Öffnen Sie Excel und erstellen Sie ein Arbeitsblatt mit den gewünschten Formatierungen und Farben.
  2. Speichern Sie die Excel-Arbeitsmappe als "XML Spreadsheet 2003 (* .xml)".
  3. Öffnen Sie die resultierende Datei in einem Texteditor wie dem Editor und kopieren Sie den Wert in eine Zeichenfolge in Ihrer Anwendung
  4. Angenommen, Sie verwenden den clientseitigen Ansatz mit einer Daten-URL, sieht der Code folgendermaßen aus:
    
    <script type="text/javascript">
    var worksheet_template = '<?xml version="1.0"?><ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'+
                 '<ss:Styles><ss:Style ss:ID="1"><ss:Font ss:Bold="1"/></ss:Style></ss:Styles><ss:Worksheet ss:Name="Sheet1">'+
                 '<ss:Table>{{ROWS}}</ss:Table></ss:Worksheet></ss:Workbook>';
    var row_template = '<ss:Row ss:StyleID="1"><ss:Cell><ss:Data ss:Type="String">{{name}}</ss:Data></ss:Cell></ss:Row>';
    </script>
    
    
  5. Anschließend können Sie mithilfe der Zeichenfolgenersetzung eine Sammlung von Zeilen erstellen, die in Ihre Arbeitsblattvorlage eingefügt werden sollen
    
    <script type="text/javascript">
    var rows = document.getElementById("my-table").getElementsByTagName('tr'),
      row_data = '';
    for (var i = 0, length = rows.length; i < length; ++i) {
    row_data += row_template.replace('{{name}}', rows[i].getElementsByTagName('td')[0].innerHTML);
    }
    </script>
    
    
  6. Sobald Sie die Informationen gesammelt haben, erstellen Sie die endgültige Zeichenfolge und öffnen Sie ein neues Fenster mit dem Daten-URI

    
    <script type="text/javascript">
    var worksheet = worksheet_template.replace('{{ROWS}}', row_data);

    window.open('data:application/vnd.ms-excel,'+worksheet); </script>

Es ist zu beachten, dass ältere Browser das Daten-URI-Schema nicht unterstützen. Daher müssen Sie möglicherweise die Dateiserverseite für diejenigen Browser erstellen, die es nicht unterstützen.

Möglicherweise müssen Sie auch eine Base64-Codierung für den Daten-URI-Inhalt durchführen, für die möglicherweise eine js-Bibliothek erforderlich ist , sowie die Zeichenfolge '; base64' nach dem MIME-Typ im Daten-URI hinzufügen.

Samshull
quelle
Obwohl es schön ist, OpenXML zu verwenden, funktioniert diese Lösung nicht für Tabellen mit Colspans oder Rowspans, ohne viel Arbeit am Javascript-Generator
Eduardo Molteni
1
Vielen Dank, dass Sie mir etwas beigebracht haben, anstatt mir zu sagen, dass ich ein Plugin verwenden soll. Erwähnenswert ist, dass dieser Ansatz auch heute noch gut funktioniert.
Benjamin Gruenbaum
Interessant, versuchte diesen Ansatz. Ich bekomme nur die gesamte <? Xml version = "1.0"?> <Ss: Arbeitsmappe xmlns: ss = "Urne: schemas-microsoft-com: office: Tabellenkalkulation"> '+' <ss: Styles> <ss: Style ss : ID = "1"> <ss: Font ss: Bold = "1" /> </ ss: Style> </ ss: Styles> <ss: Arbeitsblatt ss: Name = "Sheet1"> '+' <ss: Tabelle> Werte mit meinen Zeichenfolgen in eine Zelle geschrieben, einschließlich aller Zeilen in einer Zelle. Was vermisse ich?
CromeX
6

Excel verfügt über eine wenig bekannte Funktion namens "Webabfragen", mit der Sie Daten von fast jeder Webseite ohne zusätzliche Programmierung abrufen können.

Eine Webanfrage führt grundsätzlich eine HTTP-Anforderung direkt in Excel aus und kopiert einige oder alle empfangenen Daten (und optional die Formatierung) in das Arbeitsblatt.

Nachdem Sie die Webanfrage definiert haben, können Sie sie jederzeit aktualisieren, ohne Excel zu verlassen. Sie müssen also keine Daten "exportieren" und in einer Datei speichern - Sie möchten die Daten lieber wie aus einer Datenbank aktualisieren.

Sie können sogar URL-Parameter verwenden, indem Sie von Excel zur Eingabe bestimmter Filterkriterien usw. aufgefordert werden.

Die Nachteile, die mir bisher aufgefallen sind, sind jedoch:

  • Auf dynamisch geladene Daten kann nicht zugegriffen werden, da Javascript nicht ausgeführt wird
  • Die URL-Länge ist begrenzt

Hier ist eine Frage zum Erstellen von Webanfragen in Excel. Es enthält Links zu einer Microsoft-Hilfeseite zum Abrufen externer Daten von einer Webseite

HAL 9000
quelle
Dies funktioniert nicht, wenn sich die URL auch hinter einer Login-Wand befindet.
Achshar
Es funktioniert mit einfacher und auch formularbasierter Authentifizierung, aber mit letzterer müssen Sie möglicherweise auf "Abfrage bearbeiten" klicken, um die Anmeldeinformationen erneut einzugeben und ab sofort ein neues Cookie zu erhalten
HAL 9000
5

Dies ist ein PHP, aber Sie können es möglicherweise in Javascript ändern:

<?php>
$colgroup = str_repeat("<col width=86>",5);
$data = "";
$time = date("M d, y g:ia");
$excel = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<meta http-equiv=\"Content-type\" content=\"text/html;charset=utf-8\" />
<style id=\"Classeur1_16681_Styles\">
.xl4566 {
color: red;
}
</style>
</head>
<body>
<div id=\"Classeur1_16681\" align=center x:publishsource=\"Excel\">
<table x:str border=0 cellpadding=0 cellspacing=0 style=\"border-collapse: collapse\">
<colgroup>$colgroup</colgroup>
<tr><td class=xl2216681><b>Col1</b></td><td class=xl2216681><b>Col2</b></td><td class=xl2216681 ><b>Col3</b></td><td class=xl2216681 ><b>Col4</b></td><td class=xl2216681 ><b>Col5</b></td></tr>
<tr><td class=xl4566>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
</table>
</div>
</body>
</html>";
  $fname = "Export".time().".xls";
  $file = fopen($fname,"w+");
  fwrite($file,$excel);
  fclose($file);
  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment; filename="'.basename($fname).'"');
  readfile($fname);
  unlink($fname); ?>    
RedSoxFan
quelle
5

Erstens würde ich nicht empfehlen, HTML zu exportieren, und hoffe, dass die Excel-Instanz des Benutzers es aufnimmt. Ich habe die Erfahrung gemacht, dass diese Lösung mit Problemen behaftet ist, einschließlich Inkompatibilitäten mit Macintosh-Clients und dem Fehler, dass die betreffende Datei nicht das angegebene Format hat. Die kugelsicherste und benutzerfreundlichste Lösung ist eine serverseitige Lösung, bei der Sie mithilfe einer Bibliothek eine tatsächliche Excel-Datei erstellen und diese an den Benutzer zurücksenden. Die nächstbeste und universellere Lösung wäre die Verwendung des Open XML-Formats. Ich habe einige seltene Kompatibilitätsprobleme mit älteren Excel-Versionen festgestellt, aber im Großen und Ganzen sollte dies eine Lösung bieten, die auf jeder Excel-Version einschließlich Macs funktioniert.

Öffnen Sie XML

Thomas
quelle
4

Mozilla unterstützt weiterhin URIs der Basis 64. Auf diese Weise können Sie den binären Inhalt mithilfe von Javascript dynamisch erstellen:

<a href="data:application/vnd.ms-excel<base64 encoded binary excel content here>"> download xls</a>

Wenn Ihre Excel-Datei nicht sehr ausgefallen ist (keine Diagramme, Formeln, Makros), können Sie in das Format graben und Bytes für Ihre Datei erstellen, diese dann mit base64 codieren und in die href eingeben

Weitere Informationen finden Sie unter https://developer.mozilla.org/en/data_URIs

Pavlonator
quelle
2

Dies ist tatsächlich einfacher als Sie denken: "Kopieren Sie einfach" die HTML-Tabelle (dh den HTML-Code für die Tabelle) in die Zwischenablage. Excel kann HTML-Tabellen dekodieren. Es wird sogar versucht, die Attribute beizubehalten.

Der schwierige Teil ist "Kopieren der Tabelle in die Zwischenablage", da es keine Standardmethode gibt, um über JavaScript auf die Zwischenablage zuzugreifen. Siehe diesen Blog-Beitrag: Zugriff auf die System-Zwischenablage mit JavaScript - Ein heiliger Gral?

Jetzt brauchen Sie nur noch die Tabelle als HTML. Ich schlage jQuery und die html () -Methode vor.

Aaron Digulla
quelle
2

Dieser Code ist nur IE und daher nur in Situationen nützlich, in denen Sie wissen, dass alle Benutzer IE verwenden (z. B. in einigen Unternehmensumgebungen).

<script Language="javascript">
function ExportHTMLTableToExcel()
{
   var thisTable = document.getElementById("tbl").innerHTML;
   window.clipboardData.setData("Text", thisTable);
   var objExcel = new ActiveXObject ("Excel.Application");
   objExcel.visible = true;

   var objWorkbook = objExcel.Workbooks.Add;
   var objWorksheet = objWorkbook.Worksheets(1);
   objWorksheet.Paste;
}
</script>
NakedBrunch
quelle
Ich habe versucht, mit diesem Code die Tabelle in Excel zu öffnen, aber nicht das richtige Format sieht so aus, als hätte es nur den HTML-Code in die Tabellen kopiert. wie folgt: <TD class = "" bgColor = # ed9fff> SARTIN, DAN </ TD> <TD class = "" bgColor = # ed9fff> BALAEZ, BARBARA </ TD> Irgendwelche Vorschläge?
Fahad
Das liegt daran, dass er innerHTML verwendet hat. Das Element, das er erhält, ist die Tabelle, daher sollte es OuterHTML sein. Ich habe die Bearbeitung vorgenommen
user1566694
Ich erhalte die Fehlermeldung "Automatisierungsserver kann kein Objekt erstellen" beim Erstellen von ActiveXObject. Wie kann ich es reparieren?
Nk SP
2

Annahmen:

  1. URL gegeben

  2. Die Konvertierung muss clientseitig erfolgen

  3. Systeme sind Windows, Mac und Linux

Lösung für Windows:

Python-Code, der das ie-Fenster öffnet und Zugriff darauf hat: Die URL-URL enthält die URL ('http: //').

ie = Dispatch("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate(theurl)

Hinweis: Wenn auf die Seite nicht direkt zugegriffen werden kann, sondern Sie sich anmelden, müssen Sie dies tun, indem Sie die Formulardaten eingeben und die Benutzeraktionen mit Python emulieren

Hier ist das Beispiel

from win32com.client import Dispatch
ie.Document.all('username').value=usr
ie.Document.all('password').value=psw

die gleiche Art und Weise für das Abrufen von Daten von der Webseite. Angenommen, das Element mit der ID 'el1' enthält die Daten. Rufen Sie den Elementtext in die Variable ab

el1 = ie.Document.all('el1').value

Wenn sich die Daten in einer Python-Variablen befinden, können Sie den Excel-Bildschirm auf ähnliche Weise mit Python öffnen:

from win32com.client import Dispatch
xlApp = Dispatch("Excel.Application")
xlWb = xlApp.Workbooks.Open("Read.xls")
xlSht = xlWb.WorkSheets(1)
xlSht.Cells(row, col).Value = el1

Lösung für Mac:

Nur der Tipp: Verwenden Sie AppleScript - es hat eine einfache und ähnliche API wie win32com.client Dispatch

Lösung für Linux:

java.awt.Robot funktioniert möglicherweise dafür, es hat Klick, Tastendruck (Hotkeys können verwendet werden), aber keine API für Linux, die mir bekannt ist, kann so einfach funktionieren wie AppleScript

Pavlonator
quelle
1

Die einfache Google-Suche ergab Folgendes:

Wenn es sich bei den Daten tatsächlich um eine HTML-Seite handelt und NICHT von ASP, PHP oder einer anderen Skriptsprache erstellt wurde und Sie Internet Explorer 6 verwenden und Excel auf Ihrem Computer installiert ist, klicken Sie einfach mit der rechten Maustaste auf die Seite und schauen Sie durch das Menü. Sie sollten "Export nach Microsoft Excel" sehen. Wenn alle diese Bedingungen erfüllt sind, klicken Sie auf den Menüpunkt und nach einigen Eingabeaufforderungen wird er in Excel importiert.

Wenn Sie das nicht können, gibt er eine alternative "Drag-and-Drop" -Methode:

http://www.mrkent.com/tools/converter/

SQueryL
quelle
1

Und jetzt gibt es einen besseren Weg.

OpenXML SDK für JavaScript.

https://openxmlsdkjs.codeplex.com/

Eric Hartford
quelle
hmmm, heruntergeladen und versucht, die Beispiele in neuestem Chrom auszuführen, habe gerade Fehler bekommen :(
Josh Mc
0

Es gibt zwei praktische Möglichkeiten, dies automatisch zu tun, während in allen Browsern nur eine Lösung verwendet werden kann. Zunächst sollten Sie die offene XML-Spezifikation verwenden, um das Excel-Blatt zu erstellen. Es gibt kostenlose Plugins von Microsoft, die dieses Format auch für ältere Office-Versionen verfügbar machen. Die offene XML ist seit Office 2007 Standard. Die beiden Möglichkeiten liegen auf der Serverseite oder auf der Clientseite auf der Hand.

Die clientseitige Implementierung verwendet einen neuen CSS-Standard, mit dem Sie Daten anstelle nur der URL zu den Daten speichern können. Dies ist ein großartiger Ansatz, da Sie keinen Serveraufruf benötigen, nur die Daten und etwas Javascript. Der Nachteil ist, dass Microsoft in den aktuellen IE-Versionen (ich weiß nichts über IE9) nicht alle Teile davon unterstützt. Microsoft beschränkt die Daten auf ein Bild, wir benötigen jedoch ein Dokument. In Firefox funktioniert es ganz gut. Für mich war der IE der Todespunkt.

Die andere Möglichkeit besteht darin, eine serverseitige Implementierung zu verwenden. Es sollte viele Implementierungen von offenem XML für alle Sprachen geben. Sie müssen nur einen greifen. In den meisten Fällen ist es die einfachste Möglichkeit, ein Ansichtsmodell so zu ändern, dass ein Dokument erstellt wird. Sie können jedoch sicher alle Daten von der Clientseite an den Server zurücksenden und dasselbe tun.

sra
quelle
Kann der Down-Wähler bitte kommentieren, was der Grund für das Downvoting ist?
sra
0
   function normalexport() {

       try {
           var i;
           var j;
           var mycell;
           var tableID = "tblInnerHTML";
           var drop = document.getElementById('<%= ddl_sections.ClientID %>');
           var objXL = new ActiveXObject("Excel.Application");
           var objWB = objXL.Workbooks.Add();
           var objWS = objWB.ActiveSheet;
           var str = filterNum(drop.options[drop.selectedIndex].text);
           objWB.worksheets("Sheet1").activate; //activate dirst worksheet
           var XlSheet = objWB.activeSheet; //activate sheet
           XlSheet.Name = str; //rename


           for (i = 0; i < document.getElementById("ctl00_ContentPlaceHolder1_1").rows.length - 1; i++) {
               for (j = 0; j < document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells.length; j++) {
                   mycell = document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells(j);

                   objWS.Cells(i + 1, j + 1).Value = mycell.innerText;

                   //                                                objWS.Cells(i + 1, j + 1).style.backgroundColor = mycell.style.backgroundColor;
               }
           }

           objWS.Range("A1", "L1").Font.Bold = true;
           //                objWS.Range("A1", "L1").Font.ColorIndex = 2;
           //                 objWS.Range("A1", "Z1").Interior.ColorIndex = 47;

           objWS.Range("A1", "Z1").EntireColumn.AutoFit();

           //objWS.Range("C1", "C1").ColumnWidth = 50;

           objXL.Visible = true;

       } catch (err) {
           alert("Error. Scripting for ActiveX might be disabled")
           return
       }
       idTmr = window.setInterval("Cleanup();", 1);

   }


   function filterNum(str) {

       return str.replace(/[ / ]/g, '');
   }
Sameh el Behairy
quelle