نمایش نتایج 1 تا 4 از 4

نام تاپیک: ورود فایل اکسل به دیتابیس

  1. #1

    ورود فایل اکسل به دیتابیس

    سلام
    من چطور می تونم ورودی اکسل را در دیتابیس ذخیره کنم یعنی کاربر مقادیر داده ها را در یک فایل اکسل ذخیره کند بعد این مقادیر را بنتوان در دیتابیس ذخیره و از آن استفاده کرد.

  2. #2

    نقل قول: ورود فایل اکسل به دیتابیس

    سلام.
    شما باید با استفاده از Import/Export اطلاعاتتون رو از فایل Excel به SQL Server منتقل کنید.

  3. #3

    نقل قول: ورود فایل اکسل به دیتابیس

    من یک فایل Excel با چند Sheet مختلف دارم. مسئله اینجاست که من می خوام Insert از درون برنامه اتفاق بیافته.
    لازمه کاربر اطلاعاتی رو در فایل excel در Sheet های مختلف وارد کنه، این داده ها وارد DB بشن و بعدت Queryهای مربوطه نمایش داده بشه.
    هر راهی رفتم درست به نتیجه نرسیدم که بتونم تمام داده ها از تمام Sheet ها رو توی table هایی همنام خودشون بریزم.

  4. #4

    نقل قول: ورود فایل اکسل به دیتابیس

    خیلی راه ها رو سعی کردم امتحان کنم هیچ کدوم نشد!
    مثلا این Query باید کار میکرد که نکرد :-(


    USE [PreData]
    GO
    /****** Object: StoredProcedure [dbo].[sp_excel_Convert_Excel_To_Table] Script Date: 06/08/2011 14:04:46 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    --drop procedure sp_excel_Convert_Excel_To_Table
    --go
    Create procedure [dbo].[sp_excel_Convert_Excel_To_Table]
    (
    @excel_full_file_name varchar(666)
    ,@convert_to_table_name varchar(50)
    ,@transfer_to_table bit=1
    ,@clear_existing_records_first bit=1
    ,@good int =null output
    ,@error_code int =null
    ,@error_description varchar(255) = null output
    )
    as
    set nocount on
    declare @command varchar(8000)
    -- copy excel file under temp and change worksheet name
    set @good=0
    set @error_description = ''
    set @error_code=0
    declare @object int
    ,@hr int
    ,@src varchar(255)
    exec @hr = master.dbo.sp_OACreate 'Excel.Application', @object out
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '1. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=1
    set @good=0
    goto error
    end
    exec @hr = master.dbo.sp_OASetProperty @object, 'DisplayAlerts', 'false'
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '2. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=2
    set @good=0
    goto error
    end
    declare @workbook int
    ,@workbook_path_save_as varchar(666)
    set @workbook_path_save_as = 'c:\test.xls'
    exec @hr = master.dbo.sp_oaMethod @Object,'WorkBooks.Open',@workbook out,@excel_full_file_name
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '3. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=3
    set @good=0
    goto error
    end
    exec @hr = master.dbo.sp_OASetProperty @object, 'Workbooks(1).Worksheets(1).Name','excel_data'
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '4. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=4
    set @good=0
    goto error
    end
    exec @hr = master.dbo.sp_oaMethod @workbook ,'SaveAs',null,@workbook_path_save_as
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '5. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=5
    set @good=0
    goto error
    end
    -- get full file name
    exec @hr = master.dbo.sp_OAGetProperty @object, 'Workbooks(1).FullName',
    @workbook_path_save_as output
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '6. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=6
    set @good=0
    goto error
    end
    exec @hr = master.dbo.sp_oaMethod @Object,'Application.Quit'--,@workbook out,@workbook_path
    if @hr <> 0
    begin
    exec master.dbo.sp_OAGetErrorInfo @object, @src out, @error_description out
    set @error_description = '7. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=7
    set @good=0
    goto error
    end
    if @transfer_to_table = 1
    begin
    if @clear_existing_records_first=1
    begin
    set @command = 'delete from ' + @convert_to_table_name
    exec (@command)
    end
    -- copy records from excel into table:
    set @command = 'insert into ' + @convert_to_table_name +
    ' select * from ' +
    ' OpenRowSet(''MSDASQL'' '+
    ', ''Driver={Microsoft Excel Driver (*.xls)};'+
    'DBQ=' + @workbook_path_save_as + ''''+
    ',''SELECT * FROM [excel_data$]'')'
    print @command
    exec (@command)
    set @command = 'select * from ' + @convert_to_table_name
    exec (@command)
    end
    error:
    select @error_description as 'Error', @error_code as 'Error Code'
    exec @hr = master.dbo.sp_OADestroy @workbook
    if @hr <> 0
    begin
    set @error_description = '7. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=7
    set @good=0
    end
    exec @hr = master.dbo.sp_OADestroy @object
    if @hr <> 0
    begin
    set @error_description = '8. ' + isnull(@error_description,'N/A')
    select hr=convert(varbinary(4),@hr), source=@src, description=@error_description
    set @error_code=8
    set @good=0
    end

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •