现在 找到 两种 生产 excel 的 方案, 分别是 在 客户端 和 服务器端 生产 excel 的
1 , 在服务器端 生成。 后台 是java 的话, poi 制造一个excel文件放到 servlet 的response里面,即可。这样很麻烦,代码 超多,重复利用率超低。数据从客户端传给 服务器端,组个excel再传回来,如果网络慢,数据多,那不等崩溃了。
2, 在客户端生成。 今天发现 一个接口 import flash.external.ExternalInterface; 可以用来 调用javascript
ExternalInterface.call("eval",str); 第一个参数是 javascript的函数名,第二个参数 是用来传递给 javascript函数的。
我这里 直接调用eval函数, 在 as里面产生动态javascript,传递给它。 哈哈, 就可以直接调用以前的javascript代码啦
var str:String = " try{var funobjexcel = new ActiveXObject('excel.application');";
str += "funobjexcel.visible = true;";
str += "var funwk = funobjexcel.Workbooks.open(location.href+'test.xls');";
str += " funobjexcel.Run('Main', '<root><invoice accountId=\"1111\" invoiceNumber=\"2222\"/></root>');";
str += "}catch(err){";
str += "alert(err.description);}";
str += " funobjexcel = null; "
str += " funwk = null; "
ExternalInterface.call("eval",str);
传递了一个xml串给 excel模板的宏去处理,Main是excel里面的自定义宏函数。
该方法前提 是 设置网站 为 信任站点。 好处是 在本机 生成 excel,基本不与服务器交互,
节省服务器资源, 强烈推荐、、、
|