繁体   English   中英

在C#中打开Excel文件关闭错误

[英]Opening Excel file in C# closing erroring

我正在.NET 4.0(C#)中打开Excel文件。 我正在使用互操作性的12.0版本。 Excel文件是xls(旧)。 我可以很好地打开它,但是workbook.close()会导致COM异常,并且周围没有真实的细节。

oExcel = new Application();
oExcel.Visible = true;
oExcel.DisplayAlerts = false;

oBooks = oExcel.Workbooks;
oBook = null;
oBook = oBooks.Open(finalFilename);

oBook.Close();   // this gives COM Exception

有什么想法我做错了吗?

这是有趣的事情。 我不必保存。 在完成需要做的事情之后,我取出需要的数据并存储起来,刚才复制的工作簿就消失了。

        Excel.Application objExcel = new Excel.Application();
        Excel.Workbook objWorkbook = (Excel.Workbook)(objExcel.Workbooks._Open(@"D:\a.xls", true,
        false, Missing.Value, Missing.Value, Missing.Value,
        Missing.Value, Missing.Value, Missing.Value,
        Missing.Value, Missing.Value, Missing.Value,
        Missing.Value));

您的代码...

            objWorkbook.Save();         
            objWorkbook.Close(true, @"C:\Documents and Settings\Administrator\b.xls", true);
            objExcel.Quit();

以我的经验,仅打开和关闭错误很可能表明文件有问题。 Excel 桌面非常宽容,可以正常处理文件的任何问题。 该文件在Excel中可能看起来正常工作,而没有给出任何错误提示。

您可以尝试在Excel中重新保存文件。 如果仍然无法正常运行,请尝试创建一个新的电子表格并从旧文件中复制内容。

Workbook.Close似乎不包含没有参数的Close方法。

http://msdn.microsoft.com/zh-CN/library/microsoft.office.tools.excel.workbook.close.aspx

方法签名:void Close(对象SaveChanges,对象文件名,对象RouteWorkbook)

        object missing = Type.Missing;
        object noSave = false;
        oBook.Close(noSave, missing, missing);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM