HTML tabelle in XLS file mit JAVASCRIPT / JAVA APPLET
tomme
- javascript
Hi,
habe über ein java applet ein textfile eingelesen, mit hilfe von javascript zerlegt und relevante daten in eine tabelle eingeordnet.
soweit sogut...
nun möchte ich diese html tabelle möglichst einfach in eine ms excel (xls) datei einbetten.
mit javascript dürfte das ja schwer gehen, da der IE dies nicht zuläßt.
somit wollte ich es mit einem applet versuchen, da so auch das einlesen geht! nur habe ich keinen ahnung wie das klappen soll!
ist es überhaut möglich?
bin über jede antwort dankbar!
lg tomme
Hallo tomme!
nun möchte ich diese html tabelle möglichst einfach in eine ms excel (xls) datei einbetten.
Am Client?
mit javascript dürfte das ja schwer gehen, da der IE dies nicht zuläßt.
somit wollte ich es mit einem applet versuchen, da so auch das einlesen geht! nur habe ich keinen ahnung wie das klappen soll!
Also scheinbar wirklich am Client! Applet läuft in der Sandbox, da sollte es der IE auch nicht zulassen.
bin über jede antwort dankbar!
Mein Vorschlag: Die Excel-Datei über VBSript öffnen, und dann die Tabelle dort hineinschreiben.
http://forum.de.selfhtml.org/archiv/2001/5/t24031/#m125403
Das Beispiel öffnet Excel und schreibt dort etwas in eine Zelle.
Viele Grüße
H-P Ortner
Hallo,
erstmals vielen dank für deine hilfreiche antwort!
Mein Vorschlag: Die Excel-Datei über VBSript öffnen, und dann die Tabelle dort hineinschreiben.
ich denke vbscript ist tatsächlich das einfachste, obwohl ich bis jetzt noch keine erfahrung damit gemacht habe ;-).
http://forum.de.selfhtml.org/archiv/2001/5/t24031/#m125403
Das Beispiel öffnet Excel und schreibt dort etwas in eine Zelle.
ich wollte nun das bsp mal ausprobieren aber leider schaffe ich es nicht, dass sich eine excel mappe öffnet.
ich habe es auch schon mit ein paar anderen beispielen probiert.
es wird nichteinmal die msgbox geöffnet, da schon vorher ein fehler auftritt
es kommt meistens die fehlermeldung im ie:
ActiveX-Komponenten kann kein Objekt erstellen: 'Excel.Sheet'
lg thomas
Hallo tomme!
http://forum.de.selfhtml.org/archiv/2001/5/t24031/#m125403
Das Beispiel öffnet Excel und schreibt dort etwas in eine Zelle.
ich wollte nun das bsp mal ausprobieren aber leider schaffe ich es nicht, dass sich eine excel mappe öffnet.
es kommt meistens die fehlermeldung im ie:
ActiveX-Komponenten kann kein Objekt erstellen: 'Excel.Sheet'
Ist auf dem PC, auf dem du das probierst Excel installiert?
Öffnest du die Datei lokal oder über http?
Wie sind die Sicherheitseinstellungen im IE und wie die Makrosicherheit in Excel?
Viele Grüße
H-P Ortner
Hallo,
Ist auf dem PC, auf dem du das probierst Excel installiert?
ja, hab ich installiert.
Öffnest du die Datei lokal oder über http?
ich öffne sie lokal
Wie sind die Sicherheitseinstellungen im IE und wie die Makrosicherheit in Excel?
ich hab auch schon gelesen, dass es manchmal an den sicherheitseinstellungen im ie scheitert. hab jetzt eigentlich alles auf aktivieren gestellt.
makrosicherheit habe ich jetzt auch auf niedrig gestellt und "Allen installierten Add-Ins und Vorlagen vertrauen" und "Zugriff auf VB Projekt vertraun" angeklickt.
hast du sonst noch eine idee warum es nicht klappen könnte?
lg thomas
Hallo nochmal!
also ich habs jetzt doch geschafft :-)
hab auf die einstellungen im lokalen intranet vergessen :-)
dein bespiel hab ich trotzdem nicht ganz hinbekommen. habs jetzt so gemacht:
<html>
<head>
<title>Test mit VB-script</title>
<SCRIPT LANGUAGE="VBScript">
<!--
Function teste()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
objXL.Workbooks.Add
objXL.ActiveSheet.Cells(1,1).Value = window.document.form1.Text.value
msgbox("Text übertragen")
End Function
-->
</SCRIPT>
</head>
<body>
<form name="form1">
<input type="Text" name="Text" value="Text der in Excel übertragen werden soll" size=40 maxlength=40>
<input type="button" value="Test" onClick='teste()'>
</form>
</body>
</html>
aber trotzdem nochmals vielen dank für deine hilfe!!! hast mir echt weitergeholfen! :-)
lg thomas
Hallo
Hallo nochmal!
also ich habs jetzt doch geschafft :-)
hab auf die einstellungen im lokalen intranet vergessen :-)
habs jetzt so gemacht:
Freut mich dass es klappt - hier noch eine kleine Anregung:
<html>
<head>
<title>Test mit VB-Script</title>
<SCRIPT LANGUAGE="VBScript">
<!--
Function teste()
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
objXL.Workbooks.Add
objXL.WindowState = 2 'Minimiert
objXL.WindowState = 3 'Maximiert - Kombination bringt Excel nach vorne
for i= 1 to 50
objXL.ActiveSheet.Cells(i,1).Value = window.document.form1.Text.value
next
'msgbox("Text übertragen") 'Auskommentiert damit Excel sichtbar bleibt
End Function
-->
</SCRIPT>
</head>
<body>
<form name="form1">
<input type="Text" name="Text" value="Text der in Excel übertragen werden soll" size=40 maxlength=40>
<input type="button" value="Test" onClick='teste()'>
</form>
</body>
</html>
Dein FSO hast du auch schon eingebunden, damit steht deiner Lösung jetzt nichts mehr im Wege.
Viele Grüße
H-P Ortner
Hallo noch mal,
das mit WindowState ist echt praktisch. :-)
weißt du vl wie man den inhalt einer ganzen HTML tabelle auslesen kann?
ich habe allen zellen eine ID gegeben. nun wollte ich mit 2 schleifen und mit window.document.getElementById(i+"-"+j).innerHTML jede einzelne zelle der HTML tabelle in die excel mappe kopieren.
das problem ist jetzt, dass in der HTML tabelle nicht nur das relevante „zeichen“ sonder auch ein HTML befehl drinnen steht.
wie zb. <P onmouseover="farbeEin(3,3)"...>S</p>
ich könnte natürlich mit substrings arbeiten und zb das "S" herausschneiden
ist halt ein bisschen mühsam...
gibt es eine möglichkeit nur das was ich in der HTML tabelle sehe (unterste ebene) zu kopieren?
lg thomas
Hallo tomme!
das problem ist jetzt, dass in der HTML tabelle nicht nur das relevante „zeichen“ sonder auch ein HTML befehl drinnen steht.
wie zb. <P onmouseover="farbeEin(3,3)"...>S</p>
Kommen die Tags aus der Textdatei oder hast du die selbst eingefügt?
Wenn du sie selbst eingefügt hast, würde ich zusätzlich zu der angezeigten Tabelle mit den Effekten ein Array ohne die Effekte erstellen.
gibt es eine möglichkeit nur das was ich in der HTML tabelle sehe (unterste ebene) zu kopieren?
Mit Hilfe von „Regulären Ausdrücken“ könnte man die Zeichen <> und alles was dazwischen steht herausfiltern und nur den Rest behalten.
http://de.selfhtml.org/javascript/objekte/regexp.htm
Viele Grüße
H-P Ortner