Hallo zusammen,
habe mal wieder eine Frage:
Mein Plan ist es, den Inhalt einer Seite komplett in Excel zu exportieren nur unter Verwendung von JS. Ich weiß, das geht eigentlich nicht, aber mit window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html)); kann man ja zumindest den kompletten innerHTML eines div so speichern, das würde mir theretisch reichen. Das ganze muss mit JS laufen, da auf den Rechnern kein php oder ähnliches vorhanden ist, und die Seite offfline auf unserem Server liegt.
Die Inhalte selber sind variabel in Anzahl und Inhalt, daher kann ich das nicht über eine feste id gestalten. Hier mal ein Beispiel des Aufbaus:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<p>Bitte Namen wählen:<select id='Auswahl' onchange='AEnderung()'></p>
<option>Bernd</option>
<option>Fritz</option>
<option>Karl</option>
</select>
<div>Name:</div><div id='Name'></div>
<div>Abteilung:</div><div id='Abteilung'></div>
<div>Strasse:</div><div id='Strasse'></div>
<div>Ort:</div><div id='Ort'></div>
<table id='Tabelle' style='border:1px black solid;'>
<thead id='TabelleBody'>
<th>Nummer:</th>
<th>Name:</th>
<th>Abteilung:</th>
<th>Straße:</th>
<th>Ort:</th>
</thead>
<tbody id='TabelleKoerper'>
</tbody>
</table>
<p>und</p>
<p>noch</>
<p>ein</>
<p>paar</>
<p>Punkte</>
<script language="javascript" type="text/javascript">
var Data ={
Bernd:{Name:'Bernd',
Abteilung:'Versicherung',
Strasse:'Musterstrasse',
Ort:'Musterhausen',
Anz:2
},
Fritz:{Name:'Fritz',
Abteilung:'Chef',
Strasse:'Blubbgasse',
Ort:'München',
Anz:5
},
Karl:{Name:'Karl',
Abteilung:'Lager',
Strasse:'Maiergasse',
Ort:'Berlin',
Anz:8
}
}
function AEnderung(){
var Tabelle=document.getElementById('Tabelle');
var Koerper=document.getElementById('TabelleKoerper');
Tabelle.removeChild(Koerper);
var Wer=document.getElementById('Auswahl').value;
var Koerper=document.createElement('tbody');
Koerper.id='TabelleKoerper';
Tabelle.appendChild(Koerper);
for(i=1;i<=Data[Wer].Anz;i++){
var tr=document.createElement('tr');
tr.id='tr'+i;
Koerper.appendChild(tr);
var td=document.createElement('td');
td.innerHTML=i+' von '+Data[Wer].Anz;
tr.appendChild(td);
var td=document.createElement('td');
td.innerHTML=Data[Wer].Name;
tr.appendChild(td);
var td=document.createElement('td');
td.innerHTML=Data[Wer].Abteilung;
tr.appendChild(td);
var td=document.createElement('td');
td.innerHTML=Data[Wer].Strasse;
tr.appendChild(td);
var td=document.createElement('td');
td.innerHTML=Data[Wer].Ort;
tr.appendChild(td);
}
document.getElementById('Name').innerHTML=Data[Wer].Name;
document.getElementById('Abteilung').innerHTML=Data[Wer].Abteilung;
document.getElementById('Strasse').innerHTML=Data[Wer].Strasse;
document.getElementById('Ort').innerHTML=Data[Wer].Ort;
}
AEnderung();
</script>
</body>
</html>
Alles anzeigen
Es gibt also mehrere div, Tabelleneinträge, Überschriften etc.
Theoretisch würde es jetzt zwar gehen über die Funktion einfach den innerHTML der kompletten HTML zu speichern, ich möchte aber vorher jeden Eintrag bearbeiten (Border, Umlaute etc.).
Dafür muss ich auf jedes einzelne zugreifen können, sowohl feste Werte wie die Überschriften als auch die gefüllten Werte der Tabelle.
Und da verließen sie mich. Ich habe keine Idee wie ich das hin bekomme.
Die Daten bekomme ich zwar klar wie ich sie ja auch in die Tabelle schreibe, aber dann fehlen mir die festen Angaben. Da auch diese sich mit der Zeit verändern können, habe ich dann halt Bedenken dass es dann vergessen wird aufzulisten (im Original sind es einige Daten mehr als hier im Beispiel).
Danke im Voraus für Vorschläge, auch wenn diese bedeuten dass ich komplett auf dem Holzweg bin.