首页 > 后端开发 > C++ > 为什么我的 C# 代码在读取 Excel 文件时出现'外部表不是预期格式”错误,如何修复它?

为什么我的 C# 代码在读取 Excel 文件时出现'外部表不是预期格式”错误,如何修复它?

Linda Hamilton
发布: 2025-01-26 17:31:39
原创
624 人浏览过

Why Does My C# Code Get an

解决C#代码读取Excel文件时出现的“外部表格式不符”错误

使用OleDbDataAdapter读取Excel (xlsx)文件时,可能会遇到“外部表格式不符”错误。此错误通常发生在xlsx文件位于共享网络位置且未在Microsoft Excel中预先打开的情况下。

问题:

使用以下代码读取xlsx文件时,除非文件已在Excel中打开,否则会遇到错误:

<code class="language-c#">string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";

using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
    DataSet ds = new DataSet();
    adaptor.Fill(ds);
}</code>
登录后复制

解决方案:

为了解决此错误并在无需预先打开文件的情况下读取Excel文件,需要更新连接字符串。错误消息表明“外部表格式不符”,因为连接字符串使用了与Excel 2007文件格式不兼容的旧格式。

建议的解决方案是将连接字符串替换为以下内容:

<code class="language-c#">string path = @"C:\src\RedirectApplication\RedirectApplication1s.xlsx";
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";</code>
登录后复制

此更新后的连接字符串使用Microsoft.ACE.OLEDB.12.0提供程序并将Extended Properties设置为Excel 12.0。此组合与Excel 2007及更高版本的文件格式兼容,应该可以解决“外部表格式不符”错误。

以上是为什么我的 C# 代码在读取 Excel 文件时出现'外部表不是预期格式”错误,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板