最近需要讀取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