作者:乔山办公网日期:
返回目录:excel表格制作
这个是客户端的问题,因为Excel中可以写宏。
而宏就是一个vb程序,可以完全操控本地电脑。
所以为了安全起见,不运行对Excel进行编辑,以防止宏被运行。
不能知。即使用那个东西,也很难兼容的。
一个浏览器能读取客户端本地文件内容,从安全考虑来看,就是非常可怕的一件事情。还好,没有实现。和这个功能带来的应用功能相比,安全更重要呢。
楼主可以放弃用js读取本地文件,改用flash吧。
flash我不懂,每次用上传的时候都是去搜的,道可以在本地判断文件大小。我用的是jquery的uplod插件。可以参考。
HTML5呀,听专说很强大,只看过两眼。它在鼠标事件中连本地黏贴板中的内容都可以读呢。不过实现html5的应用范围并不是很广,只有最新的桌面和手机浏览器才支持。
至于底层是不是activexobject实现,这就不能肯定了。可以肯定的是activexobject不是javascript和html的东西,怎么说呢,算是附加上的东西吧,就像flash一样。html将很属多这些功能收进去了,比如媒体标签。
把EXCEL放在delphi 应用程序(.exe)同个636f70797a64332目录然后
begin
var
excel, WorkBook, Sheet: Variant;
try
excel := CreateOleObject('Excel.Application');
WorkBook := excel.Workbooks.Add(extractfilepath(application.exename) + '\xxxxx.xls');
Sheet := WorkBook.Worksheets[1];
except
excel := NULL;
ShowMessage('请先安装Excel');
EXIT;
end;
try
Sheet.cells(5, 2) := '15484151'; //表示第5行第2列写入15484151字符
.........
.......
finally
end;
try
excel.Visible := true;
WorkBook.Saved := True;
finally
//excel.Quit;
//excel := Unassigned;
end;
end;
就这样可以了很简单的!
明确得说,不用ActiveXObject是不zd可能的,而且用ActiveXObject还很麻烦,问题又多
建议采用以下方案:
先用 poi 或者 jxl 将excel 内容读取出来,显示在页面上
然后在页面底部增加一段js
<script type="text/javascript">
window.print();
</script>
这个方案必须把页面做成跟excel打印出来的页面风格很像,回像到以假乱真,让客户看不出来,这样答的话客户以为是直接用excel来预览,效果做到争取跟excel打印出来一模一样。这样做
满足了客户的需求,客户才不管你是不是真的用excel来预览,他只关心预览的样子是不是跟最后打印出来的一样
你也实现了功能