【发布时间】:2011-04-04 10:39:50
【问题描述】:
我想编写一个程序,它将读取一大堆 97 字文件 (.doc) 并将它们保存为 .docx 文件。我仅限于 .Net 2.0。
在这个阶段,我只想让它与我的存根代码一起工作 - 然后我将编写 GUI 和逻辑以在多个位置打开多个文件,等等...
这是我目前所拥有的:
using MSWord = Microsoft.Office.Interop.Word;
using MSPPoint = Microsoft.Office.Interop.PowerPoint;
然后
OpenFileDialog ofd = new OpenFileDialog()
{
CheckFileExists = true,
};
if (ofd.ShowDialog() != DialogResult.OK)
return;
MSWord.Application app = new MSWord.Application();
MSWord.Document doc = new MSWord.Document();
doc = app.Documents.Open(ofd.FileName);
try
{
doc.SaveAs2(ofd.FileName + ".docx", MSWord.WdSaveFormat.wdFormatDocument);
}
catch (Exception ex)
{
MessageBox.Show("Could not save because:\r\n" + ex.Message,
ex.GetType().ToString());
}
doc.Close();
app.Quit();
return;
据我所知,word 文档正在打开。
但是,SaveAs2() 命令似乎会抛出 AccessViolationException 并且 .docx 没有保存。
谁能告诉我上面的代码有什么问题,为什么它没有保存,以及如何修复它?
谢谢
【问题讨论】:
-
发布确切的例外情况(附详细信息)怎么样?
标签: c# ms-word office-interop