Python讀取excel拼接為sql文件


最近需要讀取excel中的數據寫入數據庫,記錄一下:

  • my.py
# -*- coding:utf-8 -*-
import numpy as np 
import xlrd #打開excel文件 

# 拼接字符串函數
def editstr(row):
    values = "(";
    for i in range(len(row)):
        if i == len(row) - 1:
            values = values +  "'" + str(row[i]) + "'"
        else:
            values = values + "'" +str(row[i]) + "',"
    return values +  "),"

data = xlrd.open_workbook("shr.xlsx") # 讀取文件
sqlfile = open("insert.sql", "a") # 寫入文件,讀寫方式是追加
sqlfile.writelines("insert into sw_reviewer (`user_account`,`user_name`,`full_org_path`) values ") # 添加insert頭
include_list = [] # 去重

# 遍歷excel中的sheet
for i in range(len(data.sheets())):
    table = data.sheets()[i]
    nrows = table.nrows  # 行數
    ncols = table.ncols  # 列數
    colnames = table.row_values(0) # 第一行數據
    # 打印出行數列數
    print('nrows:{0},ncols:{1},colnames:{2}'.format(nrows, ncols, colnames))
    # 遍歷sheet中除去表頭的行
    for ronum in range(1, nrows):
        row = table.row_values(ronum)
        if row[0] not in include_list:
            include_list.append(row[0])
            # 將行數據拼接成字符串
            values = editstr(row)
            # 將字符串寫入新文件
            sqlfile.writelines(values + "\r")
          
sqlfile.writelines(";") 
	           
sqlfile.close() # 關閉寫入的文件

注:生成的最后一行多了個,號 記得刪除
.end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM