网页中很多地方会用到【导出到Excel】这个功能,方法有很多:
1. Html 中的table导出到Excel
<script language="javascript">
function ToExcel(id){
try{
var table;
table = window.frames[id].InforTable;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
var oXL = new ActiveXObject("Excel.Application");
oXL.Visible = true;
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
// Add table headers going cell by cell.
for (i = 0; i < hang; i++) {
lie = table.rows(i).cells.length; //这种情况是每一行单元格数不一样的时候
for (j = 0; j < lie; j++) {
oSheet.Cells(i + 1, j + 1).value = table.rows(i).cells(j).innerText;
}
}
oSheet.ptintout;
oXL.UserControl = true;
}
catch (e) {
alert("浏览器安全性太高或禁止了弹出的ActiveX请求");
}
}
</script>
2.利用OWC导出Excel
3.一个简单的html页面,就像下面这个
<html>
<body>
<table>
<tr>
<td>Cell1</td><td>Cell2</td>
</tr>
<tr>
<td>Cell3</td><td>Cell4</td>
</tr>
</table>
</body>
</html>
将上面这个保存成txt,然后将扩展名修改为“xls”,再打开看时已经正常显示在Excel中,这样我们又有了一个方法,通过拼一个html的串,写入.xls扩展名的文件,这样就生成了一个Excel,而不受是否安装了Office的限制。当然,你也可以直接在页面的顶端加上(下面的代码是asp的)
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "inline; filename=abc.xls"
这样,当你打开这个界面的时候就会提示你是否保存,省去了些文件的麻烦。不过你也发现了它的美中不足,导出的Excel样式和平时直接在Excel中写的不一样。下面就介绍今天的重头戏,下面是一段xml,将它保存到txt,修改后缀名,就成了一个更高级一点的Excel,至少相对于前面的方法更高级。
先对其中各个元素的作用进行一下解释:
Workbook工作簿 DocumentProperties文档属性 ExcelWorkbook Excel工作簿 Styles 格式 Style格式 Worksheet工作表 Tables表格 Row行
Cell单元 Data数据 WorksheetOptions工作表选项 Print打印 ValidPrinterInfo 有效打印机信息 HorizontalResolution 水平解决方案
VerticalResolution 垂直解决方案 Selected 被选中 Panes 面 Pane 面 Number 数字 ActiveRow 激活行
LeftColumnVisible 默认左边隐藏的列数 ExpandedRowCount 行数(值要大于等于下面是用的值)
现在已经有很多值不起作用了,至少在office2007中已经不起作用,通过下面的xml和刚才可以输出文档的头,就能做出一个更加完美的导出Excel。
<?xml version="1.0"?>
<?mso-application prog>>
注意:使用上面这个xml时最好指明编码方式为gb2312,否则容易出莫名其妙的错误!
本来想好好整理一下的,感觉有点懒,先放上来吧,下面引用的地方还有很多有意义的东西,如果谁用到可以好好的读一下。
感谢:
http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats
http://msdn.microsoft.com/en-us/library/bb226687%28office.11%29.aspx
http://www.oschina.net/discuss/thread/2431