python读取Excel数据插入数据库

使用python将Excel数据插入数据库:

      在刚开始使用时,遇到过好多坑,先详细写一下:

             ①在操作excel时,需要导入xlrd(pip install xlrd) 

             ②在操作数据库时,需要导入pymysql.cursor (pip install pymysql)

     下边是相关代码:

  ① 操作Excel:              

#!/usr/bin/python
# -*- coding: utf-8 -*-
import xlrd

def read_excel(cursor,file_name):
    TABLE_NAME='';
    FIELDS='';
    VALUES='';
    #open file
    workbook=xlrd.open_workbook(file_name)

    #get all sheet
    sheet_list=workbook.sheet_names()

    for sheet in sheet_list:
        TABLE_NAME=sheet
        #如果TABLE_NAME 不存在,则需要创建表
        #GOTO
        sheet2 = workbook.sheet_by_name(sheet)
        fields=sheet2.row_values(0)
        FIELDS = ','.join(fields)
        rows=sheet2.nrows;
        for row in range(rows-1):
            value=sheet2.row_values(row+1)
            VALUES = ','.join("\""+str(v)+"\"" for v in value)
            insert_sql='insert into '+ TABLE_NAME+ '(' + FIELDS + ')'+'VALUES ('+VALUES+')';
            print (insert_sql)
            cursor.execute(insert_sql)

②链接DB

#!/usr/bin/python3
# -*- coding: utf8 -*-

import pymysql.cursors
from ReadExcel import read_excel
# 连接数据库
db = pymysql.Connect(
    host='ip',
    port=3306,
    user='username',
    passwd='PASSWORD%',
    db='DB_NAME',
    charset='utf8'
)

def operation_data():
    cursor=db.cursor()
    read_excel(cursor,'data.xlsx')
    # 关闭数据库连接
    db.commit();
    db.close()

operation_data()

其实本身难度不大,就是当时遇到的坑,在mac docs窗口查询导入的数据竟然出来是乱码,但是在sqlyog等工具里边显示正常。

你可能感兴趣的:(python)