none
Excel与SQL Server数据交互 RRS feed

  • 常规讨论

  • 第一部分:在Excel导入SQL Server中的数据:

    1. “数据”选项卡上的“获取外部数据”组中,单击“自其他来源”,然后单击“来自SQL Server”
    2. “服务器名称”框中,键入要连接的 SQL Server 计算机的名称。
    3. “登录凭据”下,执行下列操作之一:
      • 要使用当前的 Microsoft Windows用户名和密码,请单击“使用Windows 身份验证”
      • 要输入数据库用户名和密码,请单击“使用下列用户名和密码”,然后在相应的“用户名”“密码”框中键入您的用户名和密码。
    4. “选择数据库”下,选择一个数据库。在“连接到指定表”下,选择一个特定的表或视图。或者,也可以清除“连接到指定表”复选框,以便系统向使用此连接文件的其他用户提示表和视图的列表。
    5. (可选)在“文件名”框中,修改建议的文件名。单击“浏览”以更改默认文件位置(“我的数据源”)。
    6. (可选)分别在“说明”“友好名称”“搜索关键字”框中键入对文件的说明、友好名称及常用搜索文字。
    7. 要确保更新数据时始终使用该连接文件,请单击“始终尝试使用此文件来刷新此数据”复选框。此选项可确保使用该连接文件的所有工作簿始终会使用对该连接文件的更新。
    8. 若要指定在将工作簿发布到 Sharepoint Foundation 2010网站并在 Web浏览器中打开它时如何访问数据透视表的外部数据源,请单击“验证设置”,然后选择以下选项之一以登录到相应的数据源:
      • Windows身份验证 选择此选项可使用当前用户的 Windows用户名和密码。这是最安全的方法,但在许多用户连接到服务器的情况下,此方法会影响性能。
      • SSS 选择此选项可使用安全存储服务 (SSS),然后在“SSS ID”框中输入适当的标识字符串。网站管理员可以将 Sharepoint Foundation 2010 网站配置为使用一个可在其中存储用户名和密码的安全存储服务数据库。在许多用户连接到服务器的情况下,此方法的效率最高。
      • 选择此选项可在连接文件中保存用户名和密码。
        安全性 连接到数据源时应避免保存登录信息。此信息可能会以纯文本形式存储,恶意用户可能会访问该信息以破坏数据源的安全。
        注释 仅在将工作簿发布到 SharePoint网站时才使用验证设置,Excel桌面程序将不会使用它。
    9. 单击“确定”,然后单击“完成”以关闭“数据连接向导”。
    10. 将显示“导入数据”对话框。
    11. “请选择该数据在工作簿中的显示方式”下,执行下列操作之一:
      • 要创建 Excel表格,请单击“表格”(这是默认选项)。
      • 要创建数据透视表,请单击“数据透视表”
      • 要创建数据透视图和数据透视表,请单击“数据透视图和数据透视表”

      注释“仅创建连接”选项仅对于 OLAP 数据库可用。

    12. “数据的放置位置”下,执行下列操作之一:
      • 要将数据放在现有工作表中,请选择“现有工作表”,然后键入要在其中放置数据的单元格区域的第一个单元格的名称。
      • 或者,单击“压缩对话框”以暂时折叠对话框,在工作表上选择开始单元格,然后单击“展开对话框”
      • 要将数据放在新工作表中并从单元格 A1开始,请单击“新建工作表”
    13. 另外,可以更改连接属性(还可以更改连接文件),具体方式是单击“属性”,在“连接属性”对话框中进行更改,然后单击“确定”

     

    第二部分:在SQL Server中导入/导出Excel中数据:

    在SQL Sever中导入Excel数据有两种方法,一种是用SQL语句进行导入,另一种是用导入导出向导。

     

    用SQL语句导入Excel中的数据:

    1. SQL Server中导入Excel数据到新表:

      Select*INTO new_table

      FROMOPENROWSET

      'Excel 12.0 Xml;HDR=YES;Database=C:\Desktop\TEST.xlsx','SELECT * FROM [test$]');

    2. 在SQL Server中导入Excel数据到已存在的表:

      INSERTINTO master.dbo. new_table

      SELECT* FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0',

      'Excel 12.0 Xml;HDR=YES;Database=C:\Desktop\TEST.xlsx','SELECT * FROM [test$]');

      注:在导入的时候,Excel文档都必须关闭,反之会得到如下错误提示:
      Msg 7399, Level 16, State 1, Line 1
      The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error.
      Msg 7303, Level 16, State 1, Line 1
      Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

     

    用导入向导导入Excel中的数据

    1. 右击数据库 ->所有任务 ->导入数据
    2. 出现SQL Server导入导出向导窗口,在数据源中选择Microsoft Excel
    3. Excel文件路径中选择要导入的Excel文件,下方的Excel版本将自动选择Microsoft Excel 2007.如果要导入的表格第一行为列名,则勾选下方的“第一行为字段名”选项。点击下一步
    4. 终端选择SQL Server Native Client 11.0,在服务器名称文本框中,输入服务器名。
    5. 选择验证方式
      • 使用Windows身份验证     
      • 使用SQL Server身份验证
    6. 数据库选项中选择要导入到哪个数据库的名称。点击下一步
    7. 选择是复制数据还是使用查询导入特定的数据:
      • 从一个或多个表(视图)中复制数据
      • 使用查询迁移数据
    8. 从一个或多个表(视图)中复制数据:

      选择导入的表格/视图 -> 下一步–>立即执行->下一步->完成

    9. 使用查询迁移数据:

      输入SQL语句,例如:

      SELECT * FROM [test$] where ID=8

      注意:[test$]里的test是要导入的数据所在的工作表的名字。

      点击下一步–>选择导入的表–>点击预览可以查看选择数据的结果–>点击OK返回–>点击下一步–>立即执行 ->下一步 ->完成

     

    使用导出向导将数据导出到Excel中

    在SQL Server中使用导出向导也可以将SQL Server中的数据导出到Excel中。具体步骤类似于使用导入向导:

    1. 右击数据库 ->所有任务 ->导出数据
    2. 出现SQL Server导入导出向导窗口,在数据源中选择SQL Server Native Client 11.0,选择验证方式以及数据库名称。
    3. 终端选择Microsoft Excel,在Excel文件路径中选择要导入的Excel文件,下方的Excel版本将自动选择Microsoft Excel 2007. 如果要导入的表格第一行为列名,则勾选下方的“第一行为字段名”选项。点击下一步

    剩余步骤与导入向导中的步骤一致。


    Jaynet Zhang

    TechNet Community Support


    2012年10月29日 1:11
    版主

全部回复