问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

c#从excel读取数据老是报外部表不是预期格式

发布网友 发布时间:2022-04-09 22:44

我来回答

2个回答

热心网友 时间:2022-04-10 00:13

错误经过:在读取Excel时,出现外部表不是预期的格式
错误原因1: 由于Excel 97-2003的连接格式与Excel 2010 的 不同造成。
以下是从网上摘抄原文
Excel “External table is not in the expected format.” .
Question:
I'm trying to read an Excel (xlsx) file using the code shown below. I get an "External table is not in the expected format." error unless I have the file already open in Excel. In other words, I have to open the file in Excel first before I can read if from my C# program. The xlsx file is on a share on our network. How can I read the file without having to open it first? Thanks
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); }
Answers:
"External table is not in the expected format." typically occurs when trying to use an Excel 2007 file with a connection string that uses: Microsoft.Jet.OLEDB.4.0 and Extended Properties=Excel 8.0
Using the following connection string seems to fix most problems.

public static string path = @"C:/src/RedirectApplication/RedirectApplication/301s.xlsx"; public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
以上出处:http://blog.csdn.net/ldl22847/article/details/6322339
解决方案1:
很多人换了2010后,问的最多的问题之一是2003里最经典的ADO中的“provider=Microsoft.Jet.OLEDB.4.0”这句怎么不能用了。
百度一下可以了解到,Microsoft.Jet.OLEDB.4.0是Microsoft Jet引擎,这适用于2003版本(2003之前的我没装,所以也不知道能向下适应到哪个版本),而在2007中,微软对其旗下 Access 与 Excel 的主要文件格式进行修改,并且重命名为 .accdb(Access 2007 数据库文件)与 .xlsx(Excel 2007 文件),因此未被 Microsoft Jet 引擎所支持,不过微软也很快的提出了Microsoft Office 2007 Desktop Drivers: Data Connectivity Components 来支持,目前的解决方法就是把连接字符串中的数据提供者改为Microsoft.ACE.OLEDB.12.0。
以上出处:http://blog.csdn.net/laoyebin/article/details/4902313
总上所述:
//2003(Microsoft.Jet.Oledb.4.0)
string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", excelFilePath);
//2010(Microsoft.ACE.OLEDB.12.0)
string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", excelFilePath);
解决方案2:
用记事本打开你的excel文件,看看显示是否为乱码。
若是乱码,我这边测试是不会提示这个错误的,可以成功导入。
若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;
总结:如果格式不正确,则通过excel软件另存为标准的2003版本的格式
转自http://blog.csdn.net/jiajiayouba/article/details/7531707

热心网友 时间:2022-04-10 01:31

看一下是不是你的Excel被加密了。追问没有加密

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
乐赢稳健买的什么 乐赢稳健什么意思 一般椭圆的准线怎么求? 关于椭圆的准线 椭圆的准线方程如何求? 为什么手机打电话说没有开通业务 AndyoucancallmeAlicea fter class什么意思 --Alice, please tell Eric to call me when he ___ back. --No probl... 2024年辽宁省专精特新中小企业名单发布 2024辽宁省专精特新企业名单一... 2023年度辽宁省专精特新中小企业名单发布(附完整名单) 页的部首有什么 吃海底捞还用预约吗? 海底捞要排队吗 皂角从种到收获需要多长时间 皂角树什么时候种植 从种植到结果需要几年 皂角树什么时间育苗? 皂角树育苗种子的正确处理方法 皂角树怎么种呢? 皂荚树怎么种植? 皂角树怎样育苗? 《外星人就在月球背面》txt全集下载 人工智能医疗的新兴领域不包含下面哪一项 热血精灵派鸿蒙天帝怎么获得 在哪获得 洪荒,鸿蒙类小说主角一出现就很牛叉的完本小说谁有。。要多多的 人工智能,在医疗领域有哪些应用 异世之逍遥天帝小说txt全集免费下载 《都市最强神话主宰》txt下载在线阅读全文,求百度网盘云资源 《召唤神话之大秦天帝》txt下载在线阅读全文,求百度网盘云资源 《弥罗天帝》txt下载在线阅读全文,求百度网盘云资源 热血精灵派鸿蒙天帝怎么得 在哪得 查字典,写部首、页码、读音、组词里的页码是什么意思? 一令和页码的页加一起是什么字? 一的部首页码是几页 “页”字加偏旁能组成什么字?这些字怎么组词? 男生女生一共42人,女生是男生的两倍少12人,请问男生女生各多少人 男生女生一共20人,女生比男生少3人,求男女生各多少人 怎么给linux的一个用户分配给多个用户组? 男生女生一共有9人,猜一猜男生最多有几人最少有几人? 男生女生一共35人,男生比女生多3人,男女生各多少人 我想问一下,男生和女生,有什么区别? 1和2分别代表男生还是女生 求大神帮忙看看这是不是被老鼠咬的 用动物油做蛋糕,指的是什么动物? 探索者的牢笼百度云 这个是不是老鼠咬的 求探索者的牢笼ova版 求一张老鼠咬穿迷宫然后吃到东西的图片,十分感谢 四川特产苦荞记忆糕点中的动物油脂是啥? 请问探索者的牢笼出动画版了吗? 这是被老鼠咬的吗
  • 焦点

热门图文

猜你喜欢