I am using this particular part of code which i found on the net, which i am trying to implement, this javascript takes the values of the table displayed in the html table and convert’s it into excel sheet.
But for some unknown reason the below part of the code is not working. It can be used only in IE and i am not sure why the below code is not working. Can someone what is wrong with this code and can tell me how to correct this code?
<html>
<head>
<script type="text/javascript">
function write_to_excel() {
str="";
var mytable = document.getElementsByTagName("table")[0];
var row_Count = mytable.rows.length;
var col_Count = mytable.getElementsByTagName("tr")[0].getElementsByTagName("td").length;
var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible = true;
for(var i=0; i < row_count ; i++)
{
for(var j=0; j < col_Count; j++)
{
str= mytable.getElementsByTagName("tr")[i].getElementsByTagName("td")[j].innerHTML;
ExcelSheet.ActiveSheet.Cells(i+1,j+1).Value = str;
}
}
}
</script>
</script>
</head>
<body>
<input type="submit" value="Export to EXCEL" onclick="write_to_excel();"/>
<!-- ************************************************-->
<!--**** INSERT THE TABLE YOU WANT EXPORT HERE ****-->
<table><tr><td>First</td><td>second</td></tr></table>
<!-- *******************example given above****************-->
</body>
</html>
This does the trick:
Your original code actually works, there is just a typo in
for(i)-loop (row_count == undefined). And no errors? However, with this code you can get rid of the horrible hack of referring cells in the rows, also it opens a “Workbook” instead of “Object”.