【问题标题】:Combining data from Excel with database将 Excel 中的数据与数据库相结合
【发布时间】:2009-05-04 19:45:38
【问题描述】:

这可能是一个简单的问题,但我真的不知道我在 Excel 中做什么,所以希望有人可以帮助我。

我收到了一个 Excel 电子表格,其中包含两个与我的任务相关的列。第一列是“外部 ID”,第二列是“内部 ID”。我需要使用内部 ID 作为键从我们的数据库(具有各种连接)中选择一堆数据,但是所有这些数据都需要链接回外部 ID,内部/外部之间的唯一链接是这个电子表格。

例如,假设电子表格的一行如下所示:

ExtID    IntID
AB1234   2

我需要在我们的数据库中选择与 ID #2 的项目相关的所有数据,但我无法从数据库中获取“AB1234”,因此我需要以某种方式将这些数据关联回“AB1234”使用电子表格。

实现此目的最简单的方法是什么? Excel 的版本是 Excel 2007,数据库是 Oracle,如果相关的话。

请注意,我只有生产数据库的读取权限,因此不能创建表和导入电子表格数据进行连接。

【问题讨论】:

  • 您的公司/客户真的应该认真思考为什么他们的电子表格中的关键数据与他们的数据库完全分开。
  • 数据不重要,我把情况简化了,需要一次性报告。
  • 将两者转换为一种格式和分贝。例如mysql。两者都有转换器。

标签: sql excel excel-2007


【解决方案1】:

根据评论编辑

1 - 使用 MS Access 将 Excel 工作表导入为表格。

2 -链接到您的数据库表,也可以从 MS Access 中获得

外部数据选项卡->其他数据源->ODBC 连接->选择你的->选择你想要的表

3 - 编写一个 Access 查询来比较你想要的值

创建->查询设计->删除你想要的表,在它们之间拖线建立关系,点击运行

【讨论】:

  • 这两个都涉及写入数据库,我说我不能这样做。
  • 糟糕,很抱歉——我已经对其进行了编辑以适用于您的情况。 MS Access 是一个方便的数据库小刀……对于生产应用程序来说不够好,但对于在多个来源之间传输数据很有用。请注意,您还可以链接到 Excel 工作表,而不是导入它。性能会受到一点影响,但如果将来工作表发生更改,您不必重新导入它。
【解决方案2】:

通常我使用复制粘贴和带有宏的良好列模式编辑器来完成这些任务。如果您只有几个 Excel 文件,它就可以正常工作。

【讨论】:

    【解决方案3】:

    很大程度上取决于您对可用工具的熟悉程度。

    您是否有熟悉的工具可以方便地使用 IntID 查找这些记录?如果是这样,您是否可以进行查询并将结果粘贴回原始电子表格中具有 IntID 的列右侧的列中?

    如果是这样,您将获得所需的电子表格,其中包含以下列: ExtID(原始) IntID(原始) IntID(来自 Oracle) Col1(来自 Oracle) Col2(来自 Oracle)等......

    【讨论】:

      【解决方案4】:

      我不熟悉 Oracle,但我知道很多数据库允许您在表名前加上 # 或类似的东西并创建一个临时表。其他人有一个临时数据库,您可以在其中创建东西。有时您可以创建一个临时表,即使您只能选择选择。

      如果您有权这样做,我会按照 JosephStyons 的建议 (#2) 执行该功能,将您的记录插入到临时表中,并基于此进行查询。

      【讨论】:

        【解决方案5】:

        借助 Excel 和 VBA,您可以使用 ActiveX 数据对象 (ADO) 作为对特定数据库使用 OLE DB 提供程序的高级方法。这使您可以从数据库中读取数据,然后可以查询该数据并将结果存储在电子表格中。

        Oracle OLE DB provider
        ADO Guide

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-08-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多