日期:2014-05-16  浏览次数:20313 次

Javascript导出Excel的方法

?? blog迁移至 :http://www.micmiu.com

?

本文仅仅是描述前端WEB或者是在做demo时如何简单实现Excel导出。

?

[1]、主要的测试代码如下:

?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript实现WEB页面导出为EXCEL的方法</title>
</head>
<body>
<br />
<table id="michale_table" width="100%" border="1" cellspacing="0"
	cellpadding="0">
	<tr>
		<td colspan="5" align="center">JavaScript实现WEB页面导出为EXCEL的方法</td>
	</tr>
	<tr>
		<td>主题</td>
		<td>site地址</td>
		<td>作者</td>
	</tr>
	<tr>
		<td>Simple XML</td>
		<td>http://sjsky.iteye.com/blog/1182057</td>
		<td>Michael</td>
	</tr>
	<tr>
		<td>keepalived实现双机热备</td>
		<td>http://sjsky.iteye.com/blog/1156403</td>
		<td>Michael</td>
	</tr>
	<tr>
		<td>nginx安装及负载均衡配置</td>
		<td>http://sjsky.iteye.com/blog/1156195</td>
		<td>Michael</td>
	</tr>
</table>
<br />
<input type="button"
	onclick="javascript:exportTableToExcel('michale_table');"
	value="导出Excel" />
</body>
<script type="text/javascript">
function exportTableToExcel(table_id){ 
  var o_AXO = new ActiveXObject("Excel.Application");
  var o_WB;
  var o_Sheet;
  try{
  	o_WB = o_AXO.Workbooks.Add();
  	//激活当前sheet 
  	o_Sheet = o_WB.ActiveSheet;
  }catch(err){
  	alert("仅适用于IE浏览器,同时请确认已经安装好Excel软件");
  	return false;
  }

  var o_table = document.getElementById(table_id); 
  var row_len = o_table.rows.length; 
 
  for (i = 0; i < row_len; i++) 
  { 
      var cell_len = o_table.rows[i].cells.length; 

      for (j = 0; j < cell_len; j++) 
      { 
      	var cellText = o_table.rows[i].cells[j].innerText;
      	 o_Sheet.Cells(i + 1, j + 1).value = cellText;
      } 
  } 
	o_AXO.Visible = true; 
}
</script>
</html>
?

[2]、页面截图:


?

[3]、导出Excel的截图:


?

[4]、说明

??? JavaScript基本实现了页面内容直接导出Excel文件,完全在前端实现,但是要实现该功能需要具备以下前提条件:

  • IE浏览器
  • 系统已经安装好Office Excel软件

?

?

本文连接:http://sjsky.iteye.com/blog/1183573

?

?

转载请注明来自:Michael's blog @ http://sjsky.iteye.com

----------------------------- 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------

?

?

?

?

1 楼 1927105 2011-09-30  
这个只适合于IE,局限性比较大,建议LZ通过后台实现,java中典型的有poi和jxl,lz参考下。
2 楼 sjsky 2011-09-30  
1927105 写道
这个只适合于IE,局限性比较大,建议LZ通过后台实现,java中典型的有poi和jxl,lz参考下。

有关jxl的我以前有介绍过,本来就是记录下如何在没有后台的情况下简单实现导出
3 楼 zhangyaochun 2011-09-30  
1927105 写道