Excel.Workbooks.Open在开发环境中失败,并出现HRESULT:0x800A03EC

时间:2018-10-31 19:29:40

标签: c# excel-interop

过去,Excel Interop是可靠的工具。今天,它根本行不通。 我意识到HRESULT是非常通用的,提供的上下文很少。我研究了我将总结的其他问题:

  1. 文件已损坏。

  2. 文件使用的是非美国英语语言环境。

  3. 在开发环境中工作正常,但在 服务器环境。

这些都不适用。该文件未损坏。它可以在Excel中正常打开。它使用美国英语语言环境。即使在开发环境中也不起作用。我们最近已更改为使用Office 365 ProPlus,但是我发现文档说明当前互操作程序应与Office 365一起使用。我将此代码使用互操作DLL的15.0.0.0版本。我正在运行Windows 10.0.17134和Visual Studio 2017 Pro版本15.8.8。该应用程序是针对.NET Framework 4.6.1的控制台应用程序。

using System;
using System.IO;
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;

namespace DERPA_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            string templateFilename = "template.xlsx";

            if (File.Exists(templateFilename))
            {
                try
                {
                    xlApp = new Excel.Application();
                    object misValue = Missing.Value;
                    xlWorkBook = xlApp.Workbooks.Open(templateFilename);
                    // Exception thrown here in the Open.
                    // Also tried this.  It didn't work either.
                    // xlWorkBook = xlApp.Workbooks.Open(templateFilename, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
                    xlWorkBook.Close(true, misValue, misValue);
                    xlApp.Quit();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
        }
    }
}

这里是一个更简单的示例。创建一个名为“ test.csv”的CSV文件,其中包含:

  

“标题1”,“标题2”
  “数据1”,“数据2”

using Excel = Microsoft.Office.Interop.Excel;
namespace DERPA_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkBook = xlApp.Workbooks.Open("test.csv");
        }
    }
}

这具有相同的行为。

0 个答案:

没有答案