现在excel结构如下:
序号 编码 录入时间
1 a 2006-10-18 14:38
2 b 2006-10-18 14:39
3 c 2006-10-18 14:39我不希望用oldb连接,因为每次换机器都要配置数据源,很麻烦,所以我想直接读取excel文件
在线等!解决问题就揭帖!
序号 编码 录入时间
1 a 2006-10-18 14:38
2 b 2006-10-18 14:39
3 c 2006-10-18 14:39我不希望用oldb连接,因为每次换机器都要配置数据源,很麻烦,所以我想直接读取excel文件
在线等!解决问题就揭帖!
然后从Excel表单中读取数据直接插入ListView
还是使用连接串快啊,而且不需要设置数据源的啊。
你可以使用OleDb连接串,而不是Odbc.
连接串示例如下:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="c:\test\me.xls";Extended Properties="Excel 8.0"
http://www.microsoft.com/china/community/Column/31.mspx
string fileName;
DataSet myDataSet= new DataSet();
OpenFileDialog fileChooser=new OpenFileDialog();
DialogResult result1=fileChooser.ShowDialog();
fileChooser.CheckFileExists=false;
if(result1==DialogResult.Cancel)
{
return;
}
fileName=fileChooser.FileName;
if(fileName==""||fileName==null)
{
MessageBox.Show("不合法的文件名!","错误信息",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
string oleDBConnString = String.Empty;
oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
oleDBConnString += "Data Source=";
oleDBConnString += fileName;
oleDBConnString += ";Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(oleDBConnString);
conn.Close();
conn.Open();
ArrayList ary=new ArrayList();
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1]",conn);
myCommand.Fill(myDataSet,"table1");
}
当它运行到myCommand.Fill(myDataSet,"table1");
提示"Microsoft Jet 4.0 数据库引擎找不到"Sheet1" 对象"
可是我明明是通过打开文件的方式获得的这个文件,怎么会找不到呢?