2

私はテラデータを初めて使用します。Teradata で SQL コードを実行すると、テーブルが出力されます。このコードを実行するたびに、このテーブルを Excel シートに直接入力したいと考えています。どうすればできますか?ありがとうございました。

4

3 に答える 3

0

Excel 自体から ODBC 接続を使用するのが、1 回の使用で最速の方法です。

別の言語から実行できるものを何度も実行することを計画している場合は、手順が追加されますが、定期的に実行するタスクをスケジュールする場合は非常に価値があります。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)

即通報!

于 2013-08-12T23:07:23.630 に答える