问题描述
后代代码如下:privatevoidbutton3_Click(objectsender,EventArgse){string_strExcelFileName=@"D:example.xls";DataTabledtExcel=ExcelToDataTable(_strExcelFileName,"Sheet1");try{foreach(DataRowdrindtExcel.Rows){stringsql=string.Format("InsertIntot1(a1,a2,a3)values({0},{1},{2})",dr["a1"].ToString(),dr["a2"].ToString(),dr["a3"].ToString());//插入数据ExecuteSql(sql,"Server=.;DataBase=Test;uid=sa;password=123;");}}catch(Exceptionex){MessageBox.Show(ex.Message);}}publicstaticDataTableExcelToDataTable(stringstrExcelFileName,stringstrSheetName){stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;"+"DataSource="+strExcelFileName+";"+"ExtendedProperties=Excel5.0;";stringstrExcel=string.Format("select*from[{0}$]",strSheetName);DataSetds=newDataSet();using(OleDbConnectionconn=newOleDbConnection(strConn)){conn.Open();OleDbDataAdapteradapter=newOleDbDataAdapter(strExcel,strConn);adapter.Fill(ds,strSheetName);conn.Close();}returnds.Tables[strSheetName];}publicintExecuteSql(stringSQLString,stringconnectionString){using(SqlConnectionconnection=newSqlConnection(connectionString)){using(SqlCommandcmd=newSqlCommand(SQLString,connection)){try{connection.Open();introws=cmd.ExecuteNonQuery();returnrows;}catch(System.Data.SqlClient.SqlExceptionE){connection.Close();thrownewException(E.Message);}}}}断点后错误报在adapter.Fill(ds,strSheetName);不知道为啥,跪求大神帮忙解决
解决方案
解决方案二:
Sheet1是你的excel的工作簿的名称,你看看是否是一致的。有没有?
解决方案三:
引用1楼wangnaisheng的回复:
Sheet1是你的excel的工作簿的名称,你看看是否是一致的。有没有?
我电脑没装Office套件,装的金山WPS,跟这个没关系吧
解决方案四:
检查是否叫sheet1
解决方案五:
引用3楼bdmh的回复:
检查是否叫sheet1
完全不懂啊,检查哪里的叫sheet1。。。。
解决方案六:
还有会不会是我上面那些把DataTable导入数据库写错了,还是我把Excel数据读入DataTable写错了
解决方案七:
引用2楼wanghuijok的回复:
Quote: 引用1楼wangnaisheng的回复:
Sheet1是你的excel的工作簿的名称,你看看是否是一致的。有没有?我电脑没装Office套件,装的金山WPS,跟这个没关系吧
装了金山,你得Office就再也不能用了。重新安装windows系统吧。
解决方案八:
引用6楼sp1234的回复:
Quote: 引用2楼wanghuijok的回复:
Quote: 引用1楼wangnaisheng的回复:
Sheet1是你的excel的工作簿的名称,你看看是否是一致的。有没有?我电脑没装Office套件,装的金山WPS,跟这个没关系吧
装了金山,你得Office就再也不能用了。重新安装windows系统吧。
不会吧,这个错误真的跟装的office套件有关。。。。。。。。。。。。
解决方案九:
select*from[{0}$]",strSheetName这里的strSheetName参数就是你的Excel文档的一个Sheet工作簿的name
解决方案十:
引用8楼sundacheng1989的回复:
select*from[{0}$]",strSheetName这里的strSheetName参数就是你的Excel文档的一个Sheet工作簿的name
mark
解决方案十一:
没用过金山唉,这个就说你的XLS中没有这个工作集
解决方案十二:
用NPIO做吧,你的这种方法受版本限制
解决方案十三:
换个读取xls的方法吧现在网上有第三方插件不需要office的支持我以前用这种方法放到服务器上结果服务器根本没office他就不能运行了我后来改用了Aspose.Cells这个读取也挺简单的
解决方案十四:
用金山新建的xls文件导入不进去的。因为我遇到过这种情况,最后是换成office2003的模板导入成功了。
解决方案十五:
不用跪,请起;使用npoiorepplus的dll文件就可以导入数据。
解决方案:
把$去掉试试office默认后面带$,当然你用office打开是看不到的wps有可能默认不带
解决方案:
NPOIhttp://www.cnblogs.com/lwme/archive/2011/11/18/npoi_excel_import_export.html
解决方案:
2点解决你的问题:1、请把你的程序改为32位~也就是X86:右键属性-》生成-》目标平台改为X862、select*from[表名$]记住$符号在后面加上!
解决方案:
可能是你要导入的excel表的内的第一张表的名字不叫Sheet吧!
解决方案:
excel的第一个表的名字不是Sheet1吧。