外部表不是预期的格式。未安装 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 文件的主要内容,如果未能解决你的问题,请参考以下文章