通过C#将excel中的数据导入dataset

来源:百度知道 编辑:UC知道 时间:2024/05/14 16:45:14
下面是这段代码:

string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath+"\\设备清单 - 测量20070428.xls" + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection oleConnection = new OleDbConnection(strConnection);

string strCommondText = " SELECT * FROM [Sheet1$] ";
oleConnection.Open();
DataSet myDataSet = new DataSet();
OleDbDataAdapter oleAdper = new OleDbDataAdapter(strCommondText,oleConnection);
oleAdper.Fill(myDataSet,"仪器信息");

oleConnection.Close();

调试的的错误是:'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。

看到很多地方都用Sheet1$啊?为什么会出错??另外excel表的名字是什么怎么知道呢??

1、方法一:采用OleDB读取EXCEL文件:
把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:

public DataSet ExcelToDS(string Path)
{
string
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path
+";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new
OleDbConnection(strConn);
conn.Open();
string strExcel =
"";
OleDbDataAdapter myCommand = null;
DataSet ds =
null;
strExcel="select * from [sheet1$]";
myCommand = new
OleDbDataAdapter(strExcel, strConn);
ds = new
DataSet();
myCommand.Fill(ds,"table1");
return
ds;
}

对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
+"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection
conn = new OleDbConnection(strCo