在C#使用OleDb读取Excel表格数据时,出现外部表不是预期的格式这个提示

这个问题就很奇怪,打开表格执行程序就正常,不打开表格执行就报错,搜索了一下解决办法,总过差不多有以下几种解决办法。

代码如下:

private void bind(string fileName)  {string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + fileName + ";" +"Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'";OleDbDataAdapter da = new OleDbDataAdapter("SELECT *  FROM [sheet1$]", strConn);DataSet ds = new DataSet();try{da.Fill(ds);dt = ds.Tables[0];this.dataGridView1.DataSource = dt;}catch (Exception err){MessageBox.Show("操作失败!" + err.ToString());}}

参数解释:

HDR=Yes/No
可选参数,指定 Excel 表的第一行是否列名,缺省为 Yes,可以在注册表中修改缺省的行为。
“HDR =Yes;” 表示第一行包含列名,而不是数据。“HDR =No;” 表明相反;

IMEX=1
可选参数,将 Excel 表中混合 Intermixed 数据类型的列强制解析为文本。
当IMEX = 0时为“汇出模式”,这个模式开启的Excel档案只能用来做“写入”用途。
当IMEX = 1时为“汇入模式”,这个模式开启的Excel档案只能用来做“读取”用途。
当IMEX = 2时为“连结模式”,这个模式开启的Excel档案可同时支援“读取”与“写入”用途。

解决办法:

  1. 不是标准的excel表。该文件的后缀名是.xls的,但实际上是XML电子表格2003(* XML),并不是标准的.xls的文件。根据网上的方法检测该文件是否为标准的.xls的文件,用记事本打开的excel文件,如果不是乱码,则该文件是XML代码,如果打开的是乱码,则该文件是excel文件。
  2. 如果表格打开时可以正常执行,打不开执行程序时报错,可以先判断文件是否打开,如果文件没有打开,则自动打开。这个判断比较笨,但是也算是个无奈之举,判断文件是否打开方法:链接: https://blog.csdn.net/weixin_38211198/article/details/90600126.
  3. 用网上的一个ExcelHelper类包.通过试验发现一个解决办法,ExcelHelper提供了通过模板来创建新excel文件的功能,我们给它设置一个格式正确的xxx.xls文件,再指定保存路径,导出数据为xls文件即可。
  4. 是EXCEL格式的问题,应该定位一下问题出在哪,看一下具体错误信息或出错现场信息。或者不使用OLE导入,直接以读取EXCEL单元格的形式导入。以单元格形式导入,虽然效率差一些,但可以非常有效地避免空行、空列、列内容类型多内容读不进去(列内容有纯数字或纯字母内容时)的问题。
  5. 用Microsoft.Jet.OleDb.4.0去解析XLSX的文件,但我打开的文件并不是.XLSX,而是.xls的文件最后仔细看了一下链接的字符串,发现应该是excel版本的问题,excel连接字符串版本是office2003的,更改为Excel2007版本就可以正常打开文件进行读取数。
//这两种连接是不一样的
string OpenExcelData = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + tB_excel.Text + ";Extended Properties = 'Excel 8.0;HDR=Yes;IMEX=1;'"; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
string OpenExcelData = "Provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + Path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; 

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

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

    在C#使用OleDb读取Excel表格数据时,出现外部表不是预期的格式,这个问题也是偶现的 这个问题真的很奇怪,一开始也不知为什么,后面问题出现多了,总结出来,是因为在读取表格数据时需要打开Excel ...

  2. 对于连接Excel时“外部表不是预期的格式”错误的处理

    对于由File.Create(fileName)创建的Excel文件,虽然格式是Excel文件,但是并不是标准的Excel文件,用Ado.net对这种文件连接操作时,会提示"外部表不是预期的 ...

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

    1.网上找了很多方法,很多都是因为读取xls和xlsx的方法连接不一样.这个我在程序已经有进行判断进行修改. (解决连接1:http://www.cnblogs.com/kingkongv/archi ...

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

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

  5. 在读取Excel时,出现外部表不是预期的格式

    错误原因1: 由于Excel 97-2003的连接格式与Excel 2010 的 不同造成. 以下是从网上摘抄原文 Excel "External table is not in the e ...

  6. C# 导入EXCEL 报错外部表不是预期的格式错误

    错误经过:在读取Excel时,出现外部表不是预期的格式 错误原因1: 由于 Excel 97-2003的连接格式与 Excel 2010 的 不同造成. 以下是从网上摘抄原文 Excel " ...

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

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

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

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

  9. 解决Excel导入报错:外部表不是预期的格式

    最近在做一个Excel数据导入到数据库的功能,读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决方法:检查了一下,导出的Excel是标准文件不是html,没错,Excel文件正常 ...

最新文章

  1. 第 7 章 项目运作
  2. 认真推荐8个功能强大的实用网站,备受好评!
  3. 【swjtu】数字电路实验5_按键防抖动
  4. 菜鸟学习计划浅谈之Linux系统
  5. SAP CRM text Transfer mode
  6. 什么是JAX-RS注释? (第2部分)
  7. 数据库中主键的选择和使用
  8. oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
  9. 不为失败找理由,只为成功找方法
  10. 学计算机应用技术应具备什么素养,2018年云南经济管理学院单招计算机应用技术职业适应性测试大纲...
  11. matlab故障识别,基于Matlab的电力系统故障分析与仿真(V2.1)最新版
  12. stm32入门(从51过渡到32)
  13. 拓端tecdat|R语言如何在生存分析与Cox回归中计算IDI,NRI指标
  14. php 分页类 bootstrap,Thinkphp自带分页类样式转Bootstrap分页样式
  15. qchart 怎么点击一下 出一条线_动漫日系雨伞怎么画?教你用集中线尺画一把日本雨伞!...
  16. Excel 中固定行标题和列标题
  17. rust怎么拆除墙壁指令_腐蚀RUST指令大全
  18. 人工神经网络与深度神经网络
  19. Linux——读写锁
  20. 基于RealSense的坐姿检测技术

热门文章

  1. IDEA配置代码格式化模板
  2. 用Unity实现建筑切片生长动画
  3. 计算机组成原理logiasim入门:关于Logisim自定义封装
  4. java处理扩大与缩小图片
  5. Python使用pymysql操作数据库
  6. 5 款适用于 Linux 的笔记应用
  7. Cannot create property ‘xxx参数名‘ on string 这个问题结局办法
  8. Ubuntu初体验 (linux下安装QQ2012,设置远程)
  9. keep-alive 介绍
  10. 深入理解 SQL 中的 Grouping Sets 语句