python导入xls数据到db--优化版
import sys from orator import DatabaseManager import xlrd dbconfig = { 'mysql': { 'driver': 'mysql', 'host': "", 'database': "", 'user': "", 'password': "", 'port': 3306 } } db = DatabaseManager(dbconfig) def loadConfig(): return { "file": ["f:\\11.xlsx"], "startRow": 5, "table": "yy_oph2", "cleanBeforeImport": 1, "comitcount": 100, "map": { "r": "ophno" }, "defaultValueMap": { "userid": 1 } } def chang26to10(value): s = value.upper() re = 0 for x in s: re *= 26 re += ord(x) - ord('A') + 1 return re if __name__ == '__main__': importConfig = loadConfig() # 获取要导入的表名 tableName = importConfig["table"] comitcount = importConfig["comitcount"] startRow = importConfig["startRow"] cleanBeforeImport = importConfig["cleanBeforeImport"] defaultValueMap = importConfig["defaultValueMap"] if cleanBeforeImport == 1: print("确定要清空%s表数据请输入yes?" % (tableName)) flag = sys.stdin.readline().strip() if flag.upper() == "YES": db.table(tableName).truncate() kv = importConfig["map"] defaultkv = importConfig["defaultValueMap"] # 支持多文件导入 for fileidx in range(len(importConfig["file"])): xls = xlrd.open_workbook(importConfig["file"][fileidx]) sheetcount = len(xls.sheets()) # 多sheet导入 for sidx in range(sheetcount): sheet = xls.sheets()[sidx] startIdx = startRow vlist = [] for i in range(startIdx - 1, sheet.nrows): print("处理第%s行" % i) dict = {} for k, v in kv.items(): dict[v] = str(sheet.cell_value(i, chang26to10(k) - 1)).replace("'", "''") for k, v in defaultkv.items(): dict[k] = v vlist.append(dict) # 每50行提交一次 if len(vlist) == comitcount: db.table(tableName).insert(vlist) vlist.clear() continue if len(vlist) > 0: db.table(tableName).insert(vlist) vlist.clear() print("处理完成")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2020-06-06 python实现通用json导入到mysql
2020-06-06 python实现通用excel导入到mysql