外部表不是预期的格式。未安装 MS Office。使用 C# 创建 xlsx 文件

Posted

技术标签:

【中文标题】外部表不是预期的格式。未安装 MS Office。使用 C# 创建 xlsx 文件【英文标题】:External table is not in the expected format. MS office not installed. Creating xlsx file using C# 【发布时间】:2013-12-21 21:34:01 【问题描述】:

尝试从 C# 创建 excel 文件。

挑战

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。 使用this解决

现在卡住了

System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的异常,但用户代码中未处理

附加信息:外部表不是预期的格式。

从早上开始就搜索了很多。还没有结果。

OS- 64 位,未安装 MS Office,已安装上述路径中给出的 AccessDb 文件。 我可以在没有 MS Office 的情况下创建 Oledb 连接吗?

【问题讨论】:

【参考方案1】:

经过多次打击和尝试,我终于找到了一堵撞到头的墙。 外部表格的格式不符合预期。 此错误不仅意味着您的驱动程序有问题。这也可能意味着您的文件格式无法识别。

这是因为,我正在以编程方式创建 xlsx 文件。

    string pathWithExtension=location + fileName+DateTime.Now.ToString("yyyyMMddss") + ".xls";

               if (!File.Exists(pathWithExtension))
               
                   File.Create(pathWithExtension).Close(); //Dont create this file. Won't create valid xlsx file
                   //pathWithExtension = "C:/myFile.xlsx"; try using some template like this
                   ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathWithExtension + ";Extended Properties='Excel 12.0;HDR=YES'";
                   //call con.Open() throws above exception saying "External file is...."

这是因为当我手动创建 xlsx 文件时,它不是 实际的 xlsx 文件。这只是一个简单的 txt 文件,只有给 扩展名为 xlsx

【讨论】:

以上是关于外部表不是预期的格式。未安装 MS Office。使用 C# 创建 xlsx 文件的主要内容,如果未能解决你的问题,请参考以下文章

未处理的异常附加信息:外部表不是预期的格式

导入excel错误:外部表不是预期的格式 解决方案

bartender导入时外部表不是预期格式怎么办

错误 3274 外部表不是预期的格式

“外部表不是预期格式”异常的问题[重复]

IIS 和 OLE DB 外部表不是预期的格式