项目报表经过CA解析以后以excel的形式展现给客户,这样就需要客户能下载该文件。通过java可以,通过js也可以下载本地或者远程的excel。不过通过js下载excel还是有问题的。
js下载excel代码以及修改excel代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Excel Test</title>
<script language="javascript">
function readEx() {
var ExcelSheet ;
var wb;
try {
ExcelSheet = new ActiveXObject("Excel.Application");
// read start
wb = ExcelSheet.Workbooks.open("c:\\报表与原实现的改变.xlsx");
//wb = ExcelSheet.Workbooks.open("http://10.1.1.108:8080/sample/报表与原实现的改变.xlsx");
var objsheet = wb.Worksheets("Sheet1");
ExcelSheet.Save();
// read end
// 使EXCEL窗口可见
ExcelSheet.Visible = true;
}
catch(e) {
if (ExcelSheet != undefined){
alert('Error happened : ' + e);
ExcelSheet.Quit();
}
return '';
}
}
function writeEx() {
var ExcelSheet ;
var wb;
try {
ExcelSheet = new ActiveXObject("Excel.Application");
// write start
ExcelSheet.Visible = true;
ExcelSheet.Workbooks.Add();
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
ExcelSheet.SaveAs("c:\\报表与原实现的改变1.xlsx");
// write end
ExcelSheet.Quit();
}
catch(e) {
if (ExcelSheet != undefined){
alert('Error happened : ' + e);
ExcelSheet.Quit();
}
return '';
}
}
</script>
</head>
<body>
<b>
Excel Test
</b>
<br><br>
<input type="button" οnclick="readEx();" value=" Read "/>
<input type="button" οnclick="writeEx();" value=" Write "/>
</body>
</html>
js导出excel 涉及到了IE的安全问题,报automation service can't create object(Automation 服务器不能创建对象),这个问题需要修改IE的安全机制,剩下的就没有其他什么好的解决方案了。针对项目的本事情况,安全机制比较高且用户涉及不同的部门,这种修改方式是不可取的。所以在没有好的解决方案下只好使用java来下载excel了。