我可以使用 Silverlight 中的 Microsoft.Office.Interop.Word .dll 来操作 MSWord 的 SaveDialogFile 吗?
Posted
技术标签:
【中文标题】我可以使用 Silverlight 中的 Microsoft.Office.Interop.Word .dll 来操作 MSWord 的 SaveDialogFile 吗?【英文标题】:Can I use the Microsoft.Office.Interop.Word .dll in Silverlight to manipulate the SaveDialogFile of MSWord? 【发布时间】:2011-11-18 08:39:27 【问题描述】:我在制作silverlight 应用程序时遇到问题,我需要使用silverlight 创建一个Word 文档,然后使用MSWord 中的默认保存按钮将其直接保存到数据库,但后来我无法使用 Silverlight 中的 "Microsoft.Office.Interop.Word .dll" 来操作 SaveFileDialog 以便在保存时设置默认路径..
另一个问题是,我可以使用 Microsoft.Office.Interop.Word .dll 在 Silverlight 中隐藏或设置 MSWord SaveFileDialog = false 吗? 因为我的另一个计划是在Silverlight 并没有使用 MSWord 的 SaveFileDialog 框..?
我使用的是 Silverlight 5 Beta,使用其他版本的 MS Office 是否存在兼容性问题?
public partial class MainPage : UserControl
dynamic objWord;
dynamic document;
dynamic range;
static bool saveDoc = false;
public MainPage()
InitializeComponent();
objWord = AutomationFactory.CreateObject("Word.Application");
AutomationEvent saveEvent = AutomationFactory.GetEvent(objWord, "DocumentBeforeSave");
saveEvent.EventRaised += (s, args) =>
saveDoc = true;
if (saveDoc == true)
SaveFileDialog dlg = new SaveFileDialog();
dlg.DefaultExt = ".doc"; // Default file extension
dlg.Filter = "Word documents (.doc)|*.doc"; // Filter files by extension
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
string filename = dlg.SafeFileName;
FileInfo aD = new FileInfo(filename);
string pathDoc = aD.DirectoryName.ToString();
MessageBox.Show(pathDoc); //trying to get the path so that i can flush it to memory stream
;
private void Button_Click(object sender, RoutedEventArgs e)
if (AutomationFactory.IsAvailable)
try
document = objWord.Documents.Add();
object startIndex = 0;
range = document.Range(ref startIndex);
objWord.Visible = true;
catch (Exception ex)
MessageBox.Show(ex.Message);
在此先感谢 :) 上帝保佑
【问题讨论】:
【参考方案1】:如果您的 Silverlight 应用程序,您可以访问 Word/Excel/Outlook。在 FullTrust 和 OutOfBrowser 中。
Here you have a good example with Excel
【讨论】:
以上是关于我可以使用 Silverlight 中的 Microsoft.Office.Interop.Word .dll 来操作 MSWord 的 SaveDialogFile 吗?的主要内容,如果未能解决你的问题,请参考以下文章
我是不是必须使用 WCF 对 silverlight 应用程序中的对象进行序列化/反序列化?