首页 > python小白请教,怎么把数据放入不同的sheet里
头像
雪是白的啦
发布于 2021-07-22 14:33
+ 关注

python小白请教,怎么把数据放入不同的sheet里

小白的我的本意是想实现,在一个路径下的多个sql文件可以循环执行出来并写入到同一个表格文件的不同的sheet里面。但是在最后写入文件的时候我不会了。路径下一共有两个sql文件,我的记录会覆盖前一个记录!!!!
只能说基本功不好的我,不知道该怎么办了,求教怎么将循环输出的列表,分别放入不同的sheet里面
唉:-(

def execute_sql(db_name,cursor,path):
    """执行指定目录下的.sql文件"""
    path_list = os.listdir(path)
    #path_list.remove('.DS_Store') # macos中的文件管理文件,默认隐藏,这里可以忽略
    db = mysql_link(db_name)  # 打开数据库连接
    cursor = db.cursor()  # 使用 cursor() 方法创建一个游标对象 cursor
    os.chdir(path)
    for each in os.listdir("."):
            count = 0   #读取行数
            sql = ""    #拼接的sql语句
            with open(each, "r", encoding="utf-8") as f:
                for each_line in f.readlines():
                 # 过滤数据
                    if not each_line or each_line == "\n":
                         continue
                           # 读取2000行数据,拼接成sql
                    elif count < 2000:
                        sql += each_line
                        count += 1
                               # 读取达到2000行数据,进行提交,同时,初始化sql,count值
                    else:
                        cursor.execute(sql)
                        db.commit()
                        sql = each_line
                        count = 1
                       # 当读取完毕文件,不到2000行时,也需对拼接的sql 执行、提交
            if sql:
                cursor.execute(sql)
                result = cursor.fetchall()
                writeToExcel('D:\\测试.xlsx',result)
                print(result)
                db.commit()
    return result              




 # 把二维列表存入excel中
def writeToExcel(file_path,new_list):
    wb = openpyxl.Workbook()
    ws = wb.active
    ws2 = wb.create_sheet()
    for r in range(len(datas)):
        for c in range(len(datas[0])):
            ws.cell(r + 1, c + 1).value = datas[r][c]
                # excel中的行和列是从1开始计数的,所以需要+1
    wb.save(file_path)  # 注意,写入后一定要保存
    print("成功写入文件: " + file_path + " !")
    return 1    

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐