【问题标题】:Import Excel to SQL Server 2008将 Excel 导入 SQL Server 2008
【发布时间】:2015-05-01 00:17:35
【问题描述】:

我需要创建一个流程以将多选项卡式 Excel 电子表格导入 SQL Server 2008R2。每个选项卡将是数据库中的不同表。这需要每周进行一次,并且导入应该是自动化的。理想情况下,我想将电子表格弹出到一个文件夹中[或让一些实习生这样做],并让 sql 运行一个在此文件夹中查找的过程,并将数据添加到此数据库中的表中。我还想有另一个表格来跟踪进口和日期戳它们。我真的不知道从哪里开始,因为在 tsql 方面我是一个非常大的菜鸟。

【问题讨论】:

    标签: sql-server-2008 tsql


    【解决方案1】:

    微软有一篇不错的文章 - http://support.microsoft.com/kb/321686 - 概述了所涉及的过程。

    过程很简单

    SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
       'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]
    

    XLImport3 是您要导入的表,数据源是您要从中导入的 Excel 工作表。

    【讨论】:

    • 您需要使用 sp_configure 启用“Ad Hoc Distributed Queries”才能使用“OpenDatasource”
    【解决方案2】:

    如果你仅限于TSQL,以上两个答案会告诉你一些想法。如果您可以使用SSIS 访问Data ToolsBusiness Intelligence,则可以在假设Excel 工作簿中的每个工作表每次都匹配的情况下自动执行此操作。使用SSIS,您将使用数据流任务,并且每个工作表都将导入您想要的表中。下周准备好文件后,将其放入文件夹并运行 SSIS 包。

    但是,如果工作表名称发生变化(例如,前一周的工作表名称为 Cats、Dogs、Rain,而下一周的工作表名称为 Sulfur、Fire、Hell),则会导致包装破损。否则,如果只有工作表中的数据发生变化,那么这可以通过 SSIS 完全自动化。

    示例文章:https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/

    【讨论】:

    • 我通读了这篇文章,看起来很简单。我会为每个 tab\table 创建不同的数据流分支吗?
    • @NicholasJDininno 使用多张工作表,我将有一个数据流任务,并且在该数据流任务中,有多个具有多个 ADO.NET 或 OLE DB 连接目标的 Excel 源。如果你选择,你可以做几个数据流;这取决于你。
    【解决方案3】:

    以下是将 csv 文件中的数据插入给定表的代码。我不知道项目的全部要求是什么,但如果我是你,我只会将每个表分成不同的文件,然后运行一个将数据插入每个表的 proc。

    BULK
    INSERT TABLE_NAME
    FROM 'c:\filename.csv'
    WITH
    (
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
    )
    
    insert into import_history ('filename', 'import_date') values ('your_file_name', getdate())
    

    此外,对于跟踪导入并为其添加时间戳的表,您可以在每次批量插入之后将一些数据插入到该表中,如上所示。

    另外,这里有一个关于从 csv 文件批量插入的教程的链接,也可能有帮助:http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

    【讨论】:

      【解决方案4】:

      它非常简单。右键单击Sql Server(2008)中的数据库,选择Tasks并选择Import Data



      现在将DataSource 更改为Microsoft Excel。单击Browse按钮选择Excel文件的路径,然后单击Next



      选择Sql Server instance 并选择要导入excel 的数据库。



      选择Copy data from one or more tables or views 并单击Next



      现在选择要导入到Sql Server 的工作表。



      点击Next



      现在点击Finish



      现在向导将数据从Excel 导入到Sql Server,然后单击Close



      这是桌子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 2013-02-01
        相关资源
        最近更新 更多