Python大师您好
我想要实现的目标:我想将 xlsx 文件中的数据加载到数据库(DB2 - 连接器)。为此,我想将数据从 xlsx 转换为 txt 文件:
.txt - 带有插入(例如:插入 test.aaa
值 ('1', 'AA' , to_date ('2017-05-01', 'yyyy-mm-dd'), - 1、“99”);
当我拥有此文件时,我可以将插入发送到DB2。
现在我正在做的是遍历 exel 文件中的每个单元格并将其附加到 txt 文件中(使用“for”循环):
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)你知道是否有任何库可以直接将数据从excel传递到数据库
谢谢
ps。如果您发现我的代码中有任何错误,请随时纠正我。
示例数据:
a b c d
aaa 2017-11-12 111 0
bbb 2017-11-12 222 0
ccc 2017-11-12 333 0
最佳答案
感谢您的帮助。最终版本的代码:
import pandas as pd
import pymysql
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:1234@localhost/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(engine)。没有该代码就无法工作。它要求我添加“导入 pymysql”。
关于python - 将excel行转换为txt文件并将其插入到python中的DB2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47374911/