- C# code
string Sql = "select * from Sheet1"; OleDbConnection ExcelConn = new OleDbConnection(ConfigurationManager.AppSettings["ExcelConnString"]); ExcelConn.Open(); OleDbCommand ExcelCmd = new OleDbCommand(Sql, ExcelConn); OleDbDataReader ExcelDr = ExcelCmd.ExecuteReader(); while (ExcelDr.Read()) { Response.Write(ExcelDr["title"].ToString()); Response.End(); } ExcelDr.Close(); ExcelConn.Close();
我这样读XLS表有么有错?
ConfigurationManager.AppSettings["ExcelConnString"]=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Bak.xls;Extended Properties=Excel 8.0”;
执行
Microsoft Jet 数据库引擎找不到对象'Sheet1'。请确定对象是否存在,并正确地写出它的名称和路径。
Microsoft Jet 数据库引擎找不到对象'Sheet1'。请确定对象是否存在,并正确地写出它的名称和路径。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎找不到对象'Sheet1'。请确定对象是否存在,并正确地写出它的名称和路径。
源错误:
行 31: ExcelConn.Open();
行 32: OleDbCommand ExcelCmd = new OleDbCommand(Sql, ExcelConn);
行 33: OleDbDataReader ExcelDr = ExcelCmd.ExecuteReader();
行 34: while (ExcelDr.Read())
行 35: {
源文件: e:\WebSite\Test\XlsToSqlServer.aspx.cs 行: 33
堆栈跟踪:
[OleDbException (0x80040e37): Microsoft Jet 数据库引擎找不到对象'Sheet1'。请确定对象是否存在,并正确地写出它的名称和路径。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +111
System.Data.OleDb.OleDbCommand.ExecuteReader() +6
XlsToSqlServer.Page_Load(Object sender, EventArgs e) in e:\WebSite\Test\XlsToSqlServer.aspx.cs:33
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
------解决方案--------------------------------------------------------
string Sql = "select * from [Sheet1$]";
好像是这样的。
------解决方案--------------------------------------------------------
类似Word的这个
http://dotnet.aspx.cc/ShowDetail.aspx?id=13C874E4-7FC7-4FD1-8CF6-DE9EF4469A9C
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
- C# code
using System.Data.odbc OdbcConnection MyConn = new OdbcConnection();MyConn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" + Server.MapPath("/Excel.xls");OdbcCommand MyComm = new OdbcCommand();MyComm.Connection = MyConn;MyComm.CommandText = "SELECT * FROM [Sheet1$]";OdbcDataAdapter MyODA = new OdbcDataAdapter(MyComm);DataTable MyTable = new DataTable();MyODA.Fill(MyTable);MyConn.Close();