首页 新闻 会员 周边

Python 使用 openpyxl 将Excel数据 导入MySQL数据库中

0
悬赏园豆:15 [待解决问题]

最近有个项目需要Python 的openpyxl 插件将Excel数据 导入MySQL数据库中,可是以前都没有接触过Python,所以是个小白。。

下面是Excel和代码

Python code:

# -*- coding: utf-8 -*-
from openpyxl.reader.excel import load_workbook as lw
import pymysql

db = pymysql.connect("localhost","root","1234","test") #地址,用户名,密码,数据库名

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

insert_sql = 'insert into employee (LAST_NAME, FIRST_NAME, AGE, SEX, INCOME) values (%s, %s, %s, %s, %s)'

wb = lw(filename = 'c:\\test.xlsx')
ws = wb.get_sheet_by_name(wb.get_sheet_names()[0]) # <worksheet "data">

rows = ws.max_row # 最大行数
columns = ws.max_column # 最大列数

data = []
for rx in range(1, rows+1):
for cx in range(1, columns+1):
data.append(str(ws.cell(row=rx, column=cx).value))
cursor.execute(insert_sql, (data[0], data[1], data[2], data[3], data[4]))
data = []
db.commit() # 提交
# 关闭两个连接
cursor.close()
db.close()

有一个问题就是,当excel表格里有中文的时候,代码运行就会报错:

网上试了很多解码的方法,都没能解决这个问题,而且,从mysql读数据的时候,print出来的中文显示是??(问号),也用了解码的代码了,但是没有解决。。求大神指点我这个小白。。感激不尽~~网上的各种方法都看过了,希望可以针对这个问题作出针对性的回答。

PS:Python 版本:3.5.2

哈哈练的主页 哈哈练 | 初学一级 | 园豆:113
提问于:2016-07-19 17:29

把每一个Cellvalue转化成字符串试试

summerise8090 5年前
< >
分享
所有回答(1)
-1

powershell 相对不容易乱码。如果excel表相对工整,其实用 新版excel2016的数据库功能,powerbi入sql server 相对容易,然后再转mysql。

PowerShell免费软件 | 园豆:332 (菜鸟二级) | 2016-07-23 22:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册