1、网上找了很多方法,很多都是因为读取xls和xlsx的方法连接不一样。这个我在程序已经有进行判断进行修改。

(解决连接1:http://www.cnblogs.com/kingkongv/archive/2012/08/26/2657436.html)
(解决连接2:http://blog.csdn.net/jiajiayouba/article/details/7531707)
2、上面解决连接2,有一段文字引起了我的注意,就是:
用记事本打开你的excel文件,看看显示是否为乱码。
若是乱码,我这边测试是不会提示这个错误的,可以成功导入。
若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;
然后我用记事本打开我的excel文件,发现是xml代码,说明我的文档不是标准的格式,不能用内置的open方法打开。
3、看到另外一个blog(连接),里面说,是把文件转换为标准的格式,然后再读取那个临时文件。(文章里面的excelhelper没有找到对应的方法)
4、于是,我在google搜索了一下关于“xml转换为excel标准格式”,终于让我找到一个方法(连接):
 public static void ConvertExcel(string savePath){//将xml文件转换为标准的Excel格式 Object Nothing = Missing.Value;//由于yongCOM组件很多值需要用Missing.Value代替   Excel.Application ExclApp = new Excel.ApplicationClass();// 初始化Excel.Workbook ExclDoc = ExclApp.Workbooks.Open(savePath, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);//打开Excl工作薄   try{Object format = Excel.XlFileFormat.xlWorkbookNormal;//获取Excl 2007文件格式   ExclApp.DisplayAlerts = false;ExclDoc.SaveAs(savePath, format, Nothing, Nothing, Nothing, Nothing, Excel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);//保存为Excl 2007格式   }catch (Exception ex) { }ExclDoc.Close(Nothing, Nothing, Nothing);ExclApp.Quit();
}
直接把你文件的路径传入,就可以转为标准的excel文档,就可以正常的读取了。(如果你不想修改源文件,可以在传入另外一个路径,进行保存为临时文件)
更新(2017-10-23):
1、如果用excel软件保存格式为:XML 电子表格 2003(*.xml),是用xml保存,可以用文本编辑器打开。(注意:部分用这个格式导出之后,把后缀名修改为xls,excel软件打开此文件的时候,出现“文件名和扩展名不匹配”的提示)
2、如果用excel软件保存的xls格式/xlsx格式,是用zip(应该是)压缩包的形式进行保存,用文本编辑器打开是乱码
更新(2017-10-24):
有两种原因会导致报错“外部表不是预期的格式”:
1、用Microsoft.Jet.OleDb.4.0去解析xlsx的文件
2、格式为xls的文件其实是XML 电子表格 2003(*.xml),不是标准的xls文件

C#读取excel文件,报“外部表不是预期的格式”的解决办法相关推荐

  1. 用ado打开Excel文件时报外部表不是预期的格式的解决方法

    在用ado将Excel表格数据导入到数据库时,ado打开Excel文件报"外部表不是预期的格式"的错误码.其原因是Excel数据格式不是标准的Microsoft Excel的数据格 ...

  2. mysql外部表不是预期格式_批量Excel数据导入Oracle数据库 导入excel错误:外部表不是预期的格式 解决方案...

    在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一下,导出的Excel是标准文件不是html,没错 ...

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

    导入excel错误:外部表不是预期的格式 解决方案 参考文章: (1)导入excel错误:外部表不是预期的格式 解决方案 (2)https://www.cnblogs.com/kingkongv/ar ...

  4. C#读取excel文件时,报“外部表不是预期的格式”

    记录 读取Excel文件时报错 比较全面的问题汇总:转自https://blog.csdn.net/question00/article/details/51445663 最后发现我的excel文件的 ...

  5. 外部表不是预期的格式怎么解决_1分钟拆解:如何将10多个工作表sheet,合并成一张?...

    VBA教学时间到啦! 今天,解题宝宝无聊闲逛,惊奇发现了两份VBA代码,特意分享给大家. 是解决如何合并大量不同的工作表哒. 多少张都没问题!亲测有效! 分为以下两种情况 合并同一工作簿的不同工作表. ...

  6. 外部表不是预期的格式怎么解决_干货分享|同学,你的论文格式有点不太对啊!...

    转眼又到老师催交毕业论文的日子了, 你的毕业论文怎么样了??? 由于疫情的影响,大家不得不在家里开工 偷偷告诉我,你是不还在对着电脑一坐一天, 抓耳挠腮,发现一天只磨出了几个字 还没开始写的胖友,相信 ...

  7. 导入EXCEL报错:外部表不是预期的格式错误、文件格式和扩展名不匹配,文件可能已损坏或不安全的解决方法

    开发环境:C# + EXCEL2003 + VS2008 问题: 当使用如下代码从gridview导出数据到excel后,无法从excel取出数据,具体如下: 1.原使用的代码: protected ...

  8. Asp.Net读取excel文件的时候 出错提示:外部表不是预期的格式 解决方案

    解决方法:     用记事本打开你的excel文件,看看显示是否为乱码.     若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示"外部表不是预期的格式&qu ...

  9. 【C#】使用OleDb读取Excel出现“外部表不是预期的格式。”

    在C#使用OleDb读取Excel表格数据时,出现外部表不是预期的格式这个提示 这个问题就很奇怪,打开表格执行程序就正常,不打开表格执行就报错,搜索了一下解决办法,总过差不多有以下几种解决办法. 代码 ...

最新文章

  1. 导入Java文件还是class文件_java程序运行的时候,是把所有的class文件都加载到内存吗?还是用的什么加载什么?...
  2. mac 安装淘宝镜像报错之坑
  3. 在Docker中体验数据库之MySql
  4. 《博士五年总结》及我其它过去的博客文章
  5. python 魔法函数 __add___PythonI/O进阶学习笔记_2.魔法函数
  6. mapreduce排序算法_MapReduce算法–二级排序
  7. 面试官:Redis 主从复制时网络开小差了怎么整?
  8. svn ignore 的用法
  9. 快讯:Oracle 19c 新特性及官方文档抢鲜下载
  10. 贪吃蛇c语言代码高难,100多行代码的《贪吃蛇》
  11. UGUI 图片灰显裁剪
  12. 谷歌为什登不上去github_同声传译被攻陷!谷歌发布Translatotron直接语音翻译系统...
  13. position绝对定位后,a中使用display:block 无效的解决办法
  14. 在ASP.NET Atlas中调用Web Service——介绍及简单应用
  15. java后台开发工作职责_JAVA后台开发岗位职责
  16. 《黑客帝国》代码雨——源代码
  17. Vue2.x+Element UI 密码规则组件封装
  18. css防止高度塌陷,css之高度塌陷及其解决方法
  19. 世界上第一个便便数据库需要您的帮助!【智能快讯】
  20. 池州学院数学与计算机足球队,池州学院数学与计算机科学系.ppt

热门文章

  1. 2023高薪前端面试题(一、前端基础——HTTP/HTML/浏览器)
  2. 数据预处理之数据相关性分析
  3. Linux系统目录、文件的创建,编辑与合并,移动以及删除
  4. Linux根目录”/“下各个系统文件夹的含义和用途【Liunx第一步】
  5. ppstream溢出实况
  6. 哪些手机浏览器可以安装油猴插件(Tampermonkey)
  7. python 异步数据库_异步Python和数据库
  8. 10 20Hibernate之数据关联(多对多)
  9. js怎样添加、移除、移动、复制、创建和查找节点
  10. mtk8788 android 9.0 加大系统字体和图标