在C#使用OleDb读取Excel表格数据时,出现外部表不是预期的格式,这个问题也是偶现的
这个问题真的很奇怪,一开始也不知为什么,后面问题出现多了,总结出来,是因为在读取表格数据时需要打开Excel表格,试了很多次都是这样,没有打开表格时就出错,打开表格就正常
代码如下:
/// <summary>
/// 读取excel返回DataTable
/// </summary>
/// <param name="fileName"></param>
/// <param name="sheetName"></param>
/// <returns></returns>
private System.Data.DataTable ExcelToDataTable(string fileName, string sheetName)
System.Data.DataTable dt = null;
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;'";
string selectCommandText = "SELECT * FROM [" + sheetName + "$]";
using (OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommandText, connectionString))
dt = new System.Data.DataTable();
adapter.Fill(dt);
return dt;
catch(Exception ex)
MessageBox.Show(ex.ToString());
return dt;
解决方法:打开需要操作的Excel表格再执行读取操作
20200424
后面发现这是由于公司的加密系统导致的,excel文件解密后即可
目前碰到了一个在c#.net中导出excel文件,再导入时提示如下信息的错误:
外部表不是预期的格式
只能通过将导出的xls文件另存为相同的xls文件,相当于通过excel的格式转换功能,将格式正确化.
通过这种方式才能再次导入而不出错.
我用的是网上提供一个Exc
在C#使用OleDb读取Excel表格数据时,出现外部表不是预期的格式这个提示
这个问题就很奇怪,打开表格执行程序就正常,不打开表格执行就报错,搜索了一下解决办法,总过差不多有以下几种解决办法。
代码如下:
private void bind(string fileName)
string strConn = "Provider=Microsoft...
每次总是catch(Exception ee){ MesageBox.Show(ee.Message);}昨天晚上看书,发现了fcl里面很多Exception 的继承类,可以提供更多的一场相关信息。今天找了OleDbException ,巴适! catch(System.Data.OleDb.OleDbException ee) { for (int j=0;
目前我遇到的是写excel,会出“System.Data.OleDb.OleDbException, 0x80004005 外部数据库驱动程序 (1) 中的意外错误问题网上搜了下,解决办法是这个,目前我是进行删除了补丁原因:由于微软在2017-10-10更新了安全补丁(KB4041678,KB4041681),两个补丁的更新内容中,都包含有这个更新内容(Security updates to Mi...
Asp.Net中用OLEDB读dbf文件,报“外部表不是预期的格式”错误 我的代码如下string tempfile = filePrefix + Year + Month + ssdm;fileName=serverPath+@"OutPutDataFiles/"+tempfile+".dbf"; File.Copy(serverPath+@"OutPutDat
最近在做一个Excel数据导入到数据库的功能,读取Excel文件时,打开连接出错。错误为:外部表不是预期的格式解决方法:检查了一下,导出的Excel是标准文件不是html,没错,Excel文件正常。 调试代码发现创建连接对象oleDbConnection时就出错了。仔细看了下连接字符串,检查出了错误,Excel版本问题,Excel连接字符串版本是office2003的,就更改为Excel200...
很多人换了2007后,问的最多的问题之一是2003里最经典的ADO中的“provider=Microsoft.Jet.OLEDB.4.0”这句怎么不能用了。
百度一下可以了解到,Microsoft.Jet.OLEDB.4.0是Microsoft Jet引擎,这适用于2003