Silverlight 3是否可以访问本地文件系统,打开Excel和打印报告?

时间:2009-07-18 18:14:51

标签: wpf silverlight silverlight-3.0

我想知道Silverlight 3是否可用于创建业务线应用程序,我可以使用文件导入/导出功能,读取xls文件并打开Excel,使用Crsytal Reports或Reporting Services等报表工具或.. WPF需要吗?

我是Silverlight和WPF的新手,想要决定是否可以跳过学习WPF。我知道Silverlight是WPF的一个子集,但我只想集中精力于其中一个。

6 个答案:

答案 0 :(得分:9)

虽然Silverlight是沙盒,但是无法直接打开文件并将文件保存到本地文件系统,因此可以获取本地文件的流。

OpenFileDialogSaveFileDialog个类。这些类使用户可以选择文件或位置。它们只返回一个流到该文件,并且不提供有关文件系统的任何信息。这样就可以导入和导出到excel了。例如。

This example应该足以让你前进。

<强>更新: 与此同时,我在我的博客http://www.timmykokke.com/

上做了一个关于这个主题的小SilverBullet(tm)

答案 1 :(得分:2)

Silverlight 3的文件系统访问权限非常有限。即使您可以保存本地文件,也无法直接使用Silverlight中的关联应用程序打开它。如果您希望用户从Silverlight中的按钮单击导出和打开Excel文件,则必须考虑其他选项:

  • 您可以在Web服务器上打开一个指向生成Excel文件的URL的新浏览器窗口。如果服务器设置了正确的内容类型并且客户端已正确配置,则将提示用户在Excel中打开该文件。这有效地将您的导出代码移动到服务器。
  • 您可以在与Silverlight控件相同的页面上嵌入ActiveX控件,并使用浏览器对象从Silverlight操作此ActiveX控件。如果用户有足够的权限,ActiveX控件可以对本地计算机执行任何操作,包括自动执行Excel。

答案 2 :(得分:2)

不,但显然SL4会这样做!

Local file access - Silverlight 4

答案 3 :(得分:1)

不,但与Jimmy不同,我的猜测是将来不会发生。 如果您需要本地系统,还可以使用其他技术(例如,可以与Silverlight应用程序通信的本地Windows服务)。

在不久的将来,Silverlight无法进行本地访问的原因是,微软从ActiveX中学到了这一点。

答案 4 :(得分:0)

不,据我所知,Silverlight 3仍然像以前一样沙盒。这对开发人员来说已经成为一个瓶颈,所以我相信它会在即将推出的Silverlight版本中得到解决。

答案 5 :(得分:0)

据我所知,SL3最支持使用Word,Excel等COM应用程序。但是SL4可以。如果您的应用程序只是在内部使用,WPF将是您项目的最佳候选者,但如果您希望它也可以从外部客户端使用,那么我认为您可以使用SL4,然后使用OUT OF BROWSER,然后它与WPF的工作方式非常相似。再加上SL4,你就可以与Excel,Word等进行交互......做很多事情。

干杯, 布兰登