Login
芋圆社区 > 编程 > Python > Excel生成SQL

Excel生成SQL

770
0
2024-02-21
2024-02-21
Hey、小怪兽

  • • 由于需求需要,需要通过Excel生成SQL脚本,就写了一个小工具
  • • 也是要安装 openpyxl 来处理Excel文件
  • pip install openpyxl
  • • 根据这样的Excel:
  • • 生成这样的SQL:
  • INSERT INTO "public"."internationalization_info"(type_id, key, zh, en) VALUES ('1', 'web.wmFontSizeSelect', '请选择水印字号', 'Please select watermark font size'), ('1', 'web.wmLargeSize', '大号', 'Large Size'), ('1', 'web.wmMediumSize', '中号', 'Medium Size'), ('1', 'web.wmSmallSize', '小号', 'Small Size') RETURNING *
    
  • • 注释也很详细了,将代码写入 .py 的文件里,然后在终端运行即可:
  • from openpyxl import load_workbook
    
    # 读取的excel文件名
    file_name = "demo.xlsx"
    # 插入的数据库名
    db_name = "public"
    # 插入的数据表名
    table_name = "internationalization_info"
    # 读取excel文件
    wb = load_workbook(filename=file_name)
    # 第一个工作表
    sheet1 = wb.worksheets[0]
    # 获取工作表总列数
    cols = sheet1.max_column
    
    print("开始处理excel文件")
    
    # 定义一个列表,用于存储所有的值部分
    values_list = []
    
    # 获取数据表的所有字段名
    fields = [sheet1.cell(row=1, column=c).value for c in range(1, cols + 1)]
    
    # 遍历excel文件的每一行
    for row in range(2, sheet1.max_row + 1):
        # 获取行对应的字段值
        row_values = [sheet1.cell(row=row, column=c).value for c in range(1, cols + 1)]
    
        # 将字段值转换为SQL语句中的字符串格式
        values_sql = "(" + ", ".join([f"'{str(v)}'" for v in row_values]) + ")"
        values_list.append(values_sql)
    
    # 生成完整的INSERT INTO语句
    sql = f'INSERT INTO "{db_name}"."{table_name}"({", ".join(fields)}) VALUES {", ".join(values_list)} RETURNING *'
    
    # 打开一个txt文件,如果不存在则创建
    with open('sql.txt', 'w', encoding='utf-8') as file:
        # 将生成的SQL语句写入文件
        file.write(sql + '\n')
    
    print("sql已写入sql.txt文件")

下一篇:生成国际化翻译Key

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

Excel生成SQL

生成国际化翻译Key

获取项目所有中文行

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点