public  System.Data.DataTable Imports(string filePath)
{
System.Data.DataTable rs = new System.Data.DataTable();
bool canOpen=false;
   
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source=" + filePath + ";" +
"Extended Properties=\"Excel 8.0;\"");
    
try//尝试数据连接是否可用
{
conn.Open();
conn.Close();
canOpen=true;
}
catch{} if(canOpen)
{
try//如果数据连接可以打开则尝试读入数据
{
OleDbCommand myOleDbCommand = new OleDbCommand("SELECT * FROM [Sheet1$]",conn);
OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
conn.Close();
}
catch//如果数据连接可以打开但是读入数据失败,则从文件中提取出工作表的名称,再读入数据
{
string sheetName=GetSheetName(filePath);
if(sheetName.Length>0)
{
OleDbCommand myOleDbCommand = new OleDbCommand("SELECT * FROM ["+sheetName+"$]",conn);
OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
conn.Close();
}
}
}
else
{
System.IO.StreamReader tmpStream=File.OpenText(filePath);
string tmpStr=tmpStream.ReadToEnd();
tmpStream.Close();
rs=GetDataTableFromString(tmpStr);
tmpStr="";
}
return rs;
}

解决方案 »

  1.   

    上面是生成datatable有了datatable,你可以循环记录,声称sql的插入语句就可以了
      

  2.   

    谢谢指教,可是如果Excel中有多张表该怎么生成DataTable呢?还望大虾指教
      

  3.   

    有多张表的话只有用excel的com组件了.首先添加引用组件microsoft excel object library.然后用excelapp,excelbooks.excelsheet等类
      

  4.   

    标记学习,
     
      明天起练习使用C# 操作 Execl