【问题标题】:How to link the output of teradata sql query to an excel sheet?如何将 teradata sql 查询的输出链接到 Excel 工作表?
【发布时间】:2013-08-14 14:31:04
【问题描述】:

我是 teradata 的新手。我在 teradata 上运行了一个 sql 代码,它给了我一个表作为输出。每当我运行此代码时,我希望此表直接填充到 Excel 工作表中。我该怎么做? 谢谢。

【问题讨论】:

    标签: sql excel teradata


    【解决方案1】:

    最简单的方法是通过 ODBC 从 Excel 运行查询。因此,您在 Excel 中设置了外部数据源。每当您刷新数据时,我们都会针对 Teradata 执行查询。

    在 Excel 2010 中,它位于 DataFrom Other SourcesFrom Microsoft Query 或来自 Data Connection Wizard(如果您有 OLEDB 设置)。

    【讨论】:

      【解决方案2】:

      使用excel本身的ODBC连接是一次性使用的最快方式。

      如果您计划多次运行可以从另一种语言运行的东西,它会增加一个步骤,但如果您希望安排定期运行的任务,那么这是非常值得的。 这是python中的一些代码:

      import pyodbc as pc
      
      conn = pc.connect('DRIVER={Teradata};DBCNAME=dbname;UID=username;PWD=password;QUIETMODE=YES;')
      curs = conn.cursor()
      
      rows = curs.execute("""
          select *
          from table
          ;""").fetchall()
      
      f = open('myfile1.csv', 'w')
      for row in rows:
          s = [str(x) for x in row]
          f.write(','.join(s) + '\n')
          print ','.join(s) + '\n'
      f.close()
      

      用于打开 .csv 文件的默认程序是 excel。

      如果您明确需要它是一个 excel 文件,您可以使用 xlwt 模块或让 python 执行 vba 代码以导入现有文件:

      import win32com.client
      import xl
      
      excel = win32com.client.Dispatch("Excel.Application")
      f = xl.Workbook("C:\...\Target.xlsm")
      excel.Run("%s!testmacro"%f)
      

      即时报告!

      【讨论】:

        【解决方案3】:

        Teradata SQL 助手能够自动将结果导出到 csv,Excel 通常是打开 csv 的默认程序。

        您需要从 SQL 助手的“文件”菜单下选择“导出结果”。

        如果没有正确导出,请选择工具->选项->导出/导入并将分隔符更改为逗号。

        不幸的是,在 SQL 助手中无法自动保存为 xls 或 xlsx。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-26
          • 1970-01-01
          • 2019-07-11
          • 1970-01-01
          • 2010-11-08
          • 1970-01-01
          相关资源
          最近更新 更多