2017-11-19 2 views
0

こんにちはマスターをtxtファイルに行を得意とpythonでDB2にそれを挿入します。私は、データベースにしてXLSXファイルからデータをロードする(DB2 - コネクタ)。これを行うには、xlsxからtxtファイルにデータを変換します: .txt - 挿入あり(test.aaaの値( '1'、 'AA'、to_date( '2017-05-01'、 'yyyy -mm-DD ')、-1 『99』); 私はエクセルファイル内の各セルを通過している今、私がやっているためDB2変換は、Python</p> <p>の

への挿入を送信することができ、このファイルを持っていますとき。そして、txtファイル(ループ 'の' を使って)ににそれを追加します。

def modify(self): 
    a = 0 
    for i in range(self.sh.nrows): 
     print(self.sh.row_values(a)) 
     b=0 
     for i in range(self.sh.ncols): 
      print(self.sh.cell_value(a,b)) 
      b += 1 
     a += 1 

質問: 1)ですこれを行う簡単な方法はありますか?たぶん私は各行ではなく、全体の行だけを渡すことができますか? 2)は、PS

任意のライブラリがある場合にだけ、直接データベースにExcelからのデータを渡すために

おかげ

を知っていますか。私のコードに間違いがある場合は、私を修正してください。

サンプルデータ:助けを

a b c d 
aaa 2017-11-12 111 0 
bbb 2017-11-12 222 0 
ccc 2017-11-12 333 0 
+0

どのようにExcelファイルのサンプルを提供できますか? ExcelファイルにはデータまたはSQLクエリだけが含まれていますか? –

+0

Excelにはデータのみが含まれています(SQLクエリはありません) - 説明に追加されたサンプルデータ – pyton17

+0

'a'と' b'はまったく必要ありません。あなたの最初の 'for'ループには' i'の代わりに 'rowy'を使い、2回目の' for'ループには 'colx'を' i'だけ使用してください。 –

答えて

0

感謝。コードの最終バージョン:

import pandas as pd 
import pymysql 
from sqlalchemy import create_engine 


engine = create_engine('mysql+pymysql://root:[email protected]/world') #create engine 
conn = engine.connect() #open connection 
df = pd.read_excel('ex1.xlsx', sheet_name = 'PM1', dtype = str) #create data_frame 

df.to_sql('test1',conn,if_exists='append',index=False) #INSERT into DB 
data = pd.read_sql('select * from test1',conn) 

print(data) 

一つだけあります:pymysql(エンジン):私はこれを使用する必要がある理由。そのコードがなければ動作しません。私は 'import pymysql'を追加する必要があります。

関連する問題