当前位置: 移动技术网 > IT编程>脚本编程>Python > python读取excel【二】,循环行与列对应数据

python读取excel【二】,循环行与列对应数据

2020年07月11日  | 移动技术网IT编程  | 我要评论

1. 我们需要取到数据如下:

年龄: 19 身高: 152cm 所对应的体重信息,组成一组信息
年龄为:19 身高是 152 cm的人的标准体重是46kg
年龄为:19 身高 153cm 的人的标准体重为46kg

年龄为:61 身高 152cm 的人的标准体重为53kg


2.数据集格式如下:

在这里插入图片描述

3.实现代码如下:

# -*- coding:utf-8 -*-
# @Time: 2020/7/9 17:03
# @Author: 宇风-飞扬
# @File: Imp_data.py
import pymysql
import xlrd


def open_excel(file='file.xls'):
	#打开excel 文件
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception as e:
        print(str(e))


def excel_table_by_name(file=u'women.xlsx', colnameindex=0, by_name=u'Sheet1'):  # 修改自己路径
    data = open_excel(file)
    table = data.sheet_by_name(by_name)  # 获得表格
    nRows = table.nrows  # 拿到总共行数
    title_list = table.row_values(0)  # 标题字段
    for i in range(1, nRows):  # 循环行数
        row_vals = table.row_values(i)
        age = 0
        for j, val in enumerate(row_vals):  # 对每列数据进行循环
            if j == 0:
                age = val  # 年龄
            else:
                print('当前年龄为:' + str(age) + ' 身高为:' + str(title_list[j]) + '标准值为:' + str(val))
                print(type(age))
                print(type(title_list[j]))
                print(type(val))
                height = title_list[j].replace("cm", "")
                sql = 'INSERT into scc_body_st VALUES(NULL,%d,%d,0,%d)' % (
                    int(age), int(height), int(val)
                )
                print(sql)
                conn_mysql(sql=sql)
        # break


def conn_mysql(sql): # 写了个简单mysql 连接,将数据插入本地数据库
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="123456", db="TEST")
    cur = conn.cursor()

    cur.execute(sql)
    # data = cur.fetchall()
    # print(data)
    conn.commit()
    cur.close()
    conn.close()


if __name__ == "__main__":
    excel_table_by_name()


写这个代码主要是将excel数据批量插入到数据库中,形成数据字典,方便使用,主要是懒,不想手动插入数据库。

4.总结:

还有一些其他的用法 :
常用的一些操作:

# 获取总行书
nRows = table.nrows
# 获取总列数
nRows = table.ncols 
#获取 n行数据
nRows = table.row_values(n)
#获取 n 列的数据
table.col_values(n)

本文地址:https://blog.csdn.net/EB_NUM/article/details/107236146

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网