我可以在Silverlight中使用Microsoft.Office.Interop.Word .dll来操作MSWor
本文关键字:Word Interop dll MSWor 操作 Office Microsoft Silverlight 我可以 | 更新日期: 2023-09-27 18:15:16
我在制作silverlight应用程序时遇到了问题,我需要使用silverlight和使用MSWord中的默认保存按钮将其直接保存到数据库中,但是我不能使用"Microsoft.Office.Interop "。Word .dll"在silverlight中操纵SaveFileDialog,以便我可以在保存时设置默认路径。
另一个问题是,我可以隐藏或设置MSWord SaveFileDialog = false在Silverlight使用Microsoft.Office.Interop.Word .dll?因为我的其他计划是在Silverlight中创建一个自定义的保存文件对话框,而不是使用MSWord保存文件对话框…?
我使用的是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);
}
}
}
}
提前感谢:)上帝保佑
如果您的Silverlight应用程序在FullTrust和OutOfBrowser中,则可以访问Word/Excel/Outlook。
这里有一个Excel的好例子