Tabel eksport til Excel med RANGE
Hej EksperterHar brug for:
Det jeg har brug for at et "bi-dimensional object array", som bliver udfyldt af JS funktionen(med rigtige formater), og giver mulighed for at kopirer det hele ind på en gang.
Jeg har et lille problem. Jeg har lavet en funktion som taget indholdet af en HTML tabel og indsætter det, celle for celle i Excel. Det virker fint, men er ikke tilfreds med hastigheden, da der i mig tilfælde kan forekomme over 500x10 celler(tager 3 min).
Derfor har jeg søgt på nettet for fundet denne side der med C# og VBA, taget et array og indsætter det hele på en gange, ved hjælp af "range".
http://www.codeproject.com/KB/office/FastExcelExporting.aspx
Jeg programmerer i HTML, JavaScript og JSP.
Som jeg forstår det taget de et "bi-dimensional object array", som de står får mulighed for at sætte ind på et område. Har prøvet med et normalt array, men der sætter det hele arrayet ind i hver celle.
===================== KODE ======================
<HTML>
<HEAD>
<TITLE>index.html</TITLE>
</HEAD>
<BODY>
<script>
function CreateExcelSheet()
{
var x=myTable.rows
var someArray = new Array;
var xls = new ActiveXObject("Excel.Application")
xls.visible = true
xls.Workbooks.Add
for (i = 0; i < x.length; i++)
{
var y = x[i].cells
for (j = 0; j < y.length; j++) {
var tempVal = y[j].innerText;
tempVal = tempVal.replace(/\./g,"");
tempVal = tempVal.replace(/\,/g,".");
if (!isNaN(tempVal)) {
xls.Cells( i+1, j+1).Value = parseFloat(tempVal)
xls.Cells( i+1, j+1).NumberFormat = "#,##0.00"
}
else {
xls.Cells( i+1, j+1).Value = tempVal
}
xls.Cells(1, j+1).Interior.ColorIndex = 25
xls.Cells(1, j+1).Font.FontStyle = "Bold"
xls.Cells(1, j+1).Font.ColorIndex = 2
// Evt. udfyld af array her..
}
}
for (j = 0; j < y.length; j++) {
xls.Cells(j+1).EntireColumn.AutoFit
}
//xls.range('a12:d14').Value = y
xls.Worksheets(1).Name="Deors table"
}
</script>
<table style="display: true" id="myTable" border="1">
<tr>
<td>Celle 1</td>
<td>Celle 2</td>
<td>Celle 3</td>
<td>Celle 4</td>
</tr>
<tr>
<td>Celle 5</td>
<td>Celle 6</td>
<td>Celle 7</td>
<td>Celle 8</td>
</tr>
<tr>
<td>Celle 9</td>
<td>Celle 10</td>
<td>Celle 11</td>
<td>Celle 12</td>
</tr>
<tr>
<td>Celle 13</td>
<td>Celle 14</td>
<td>Celle 15</td>
<td>Celle 16</td>
</tr>
</table>
<form action="#" method="post"><input type="submit" onclick="CreateExcelSheet(); return false;" value="Open as Excel spreadsheet" /></form>
</BODY>
</HTML>
