多个Excel Sheet同时入库处理方法

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
/*
Author:Jin
Time:06/17/2006
Note:數據導入
*/

ALTER  proc [dbo].[SP_import]
    
@excfilename varchar(MAX),
    
@sheet varchar(MAX)
AS 
begin
    
set @sheet=@sheet+';'
    
DECLARE @excsheet varchar(MAX)
    
while charindex(';',@sheet)>0
    
begin
    
select @excsheet=left(@sheet,charindex(';',@sheet)-1)
    
insert into execFile(a,b,c,d)
    exec('SELECT a,b,c,d FROM openrowSET(''MICROSOFT.JET.OLEDB.4.0'',
    
''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',['+@excsheet+'])  ')
    
set @sheet=stuff(@sheet,1,charindex(';',@sheet),'')
    
end
end
Excel得到多个Sheet函数
        public static string GetExcelSheetTableName(string excelFileName)
        
{
            
string tableName = null;
            
if (File.Exists(excelFileName))
            
{
                
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet."+
                           
"OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + excelFileName))
                
{
                    conn.Open();
                    DataTable dt 
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    
for(int i=2;i<dt.Rows.Count;i++)
                    
{
                        tableName
+=dt.Rows[0][i].ToString().Trim()+"@";
                    }

                }

            }

            
return RemoveTail(tableName);
        }

posted on 2006-07-06 08:46  ★金★  阅读(511)  评论(0)    收藏  举报

导航