Asp.net读取Excel文件 2

时间:2022-09-06 05:40:13

如果你经常光临Insus.NET的博客,你会留意到有一篇博文 Asp.net读取Excel文件 那只是列出Excel两个版本的连接语句。但是你的专案在应用时,也许不能固定用户只上传某一种版本的Excel文件而你在专案中取舍使用哪一种连接字串,所以你会尝试使用下面方法去解决,判断上传的Excel文件是什么版本的:

Asp.net读取Excel文件 2Asp.net读取Excel文件 2View Code
  public   static   string  GetExcelConnectionString( string  file)
        {
            
string  connectionString  =   string .Empty;
            
string  fileExtension  =  file.Substring(file.LastIndexOf( " . " +   1 );
            
switch  (fileExtension)
            {
                
case   " xls " :
                    connectionString 
=   " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "   +  HttpContext.Current.Server.MapPath(file)  +   " ;Extended Properties='Excel 8.0;HDR=YES;IMEX=1' " ;
                    
break ;
                
case   " xlsx " :
                    connectionString 
=   " Provider=Microsoft.ACE.OLEDB.12.0;Data Source= "   +  HttpContext.Current.Server.MapPath(file)  +   " ;Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1' " ;
                    
break ;
            }
            
return  connectionString;
        }

 

在专案中调用时(代码部分):

Asp.net读取Excel文件 2Asp.net读取Excel文件 2View Code
  // 从数据库取得上传的Excel文件名
         string  file  =  objDictionary[ " FileFullName " ].ToString();
        
// 获取中Excel的连接字串。
         string  excelConnectionString  =  GetExcelConnectionString(file);
       
// 传入至OleDbConnection实例中去
        OleDbConnection objConn  =   new  OleDbConnection(excelConnectionString);
        
string  sql  =   " SELECT * FROM [Sheet1$] " ;
        OleDbDataAdapter ObjDa 
=   new  OleDbDataAdapter(sql, objConn);
        DataSet objDs 
=   new  DataSet();
        ObjDa.Fill(objDs);