Det er et offline-dokument (intranet uden ASP, PHP o.l.). Dvs. Jeg har en intern HTML-formular, hvor der udfyldes navn, fødselsdato, antal vundne kampe, antal tabte kampe. Dette vil jeg gerne have indlæst i et excel-ark eller en csv-fil.
Jeg har fundet dette script, som anvender FSO-objektet og ser ud til at virke, men måske har du en bedre løsning ? kan se på nettet at jeg ikke er den første der spørger men har desværre ikke fundet nogen brugbare løsninger.
<html>
<head> <script type="text/javascript">
function CreateExcelSheet() {
// the DOM enables the table parameters to be used from the id var x=myTable.rows
var xls = new ActiveXObject("Excel.Application") // To make it display in its own window xls.visible = true
xls.Workbooks.Add
for (i = 0; i < x.length; i++) { var y = x[i].cells
// To make it display in its own window xls.visible = true
// Do an "AutoFit" columns in Excel - this is valid only for columns less than or equal to Z if (y.length <= 26) { var rng = xls.Columns(String.fromCharCode(65, 58, 65 + y.length - 1)) rng.AutoFit }
var x = myTable.rows var ForWriting = 2 // var ForAppending = 8 var TriStateFalse = 0
var fsObj = new ActiveXObject("Scripting.FileSystemObject")
var newFile = fsObj.OpenTextFile("c:/temp/ClientSideJScriptFile.csv", ForWriting, true, TriStateFalse)
for (i = 0; i < x.length; i++) { var y = x[i].cells var strTmp = y[0].innerText if (y.length > 0) { for (j = 1; j < y.length; j++) { strTmp = strTmp + "," + y[j].innerText } }
newFile.WriteLine(strTmp) }
newFile.Close()
}
</script> <DL> <DT><A HREF="index.html"><STRONG>Return to LaurenceHolbrook.com Technical Information Index</STRONG></A> </DL> <HR> </head>
Jeg mener faktisk, man kan gemme et Excel sheet som CSV med: objMySheet.SaveAs("c:/temp/ClientSideJScriptFile.csv", 6);
Hvis det ikke lykkes, kan du prøve med denne omskrivning, som øger performance en hel del i forhold til din egen funktion:
function WriteCSVFile() { var x = myTable.rows; var ForWriting = 2; // var ForAppending = 8; var TriStateFalse = 0; var fsObj = new ActiveXObject("Scripting.FileSystemObject"); var newFile = fsObj.OpenTextFile("c:/temp/ClientSideJScriptFile.csv", ForWriting, true, TriStateFalse); var aTmp = aTmp2 = []; var y, i, j, m, n; for (i=0,m=x.length; i<m; i++) { aTmp2 = []; y = x[i].cells; for (j=0,n=y.length; j<n; j++) { aTmp2.push(y[j].innerText); } aTmp.push( aTmp2.join(",") ); } newFile.WriteLine( aTmp.join("\r\n") ); newFile.Close(); fsObj = newFile = aTmp = aTmp2 = null; }
Ser interessant ud. Det vil jeg helt klart prøve af...
Jeg fandt desværre ud af at det mit script ikke tager variable felter med... er det muligt at lave outputtet, hvor tabellen ikke er statisk, men hvor 2. kolonne er et input-felter (altså at det er Value der kommer med) ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.