Python采集学习笔记-读取excel数据

表格格式

方法一:使用xlrd

python 复制代码
import xlrd

1.读取Excel文件

python 复制代码
workbook = xlrd.open_workbook('plc.xlsx')

2.读取第一个表

python 复制代码
sheet = workbook.sheet_by_index(0)

3.获取表格总行数

python 复制代码
total_rows = sheet.nrows

4.创建列表,存储表格一行中每一列信息

python 复制代码
plc_info = []
for row in range(1, total_rows):  # 获取第1到最后行的数据
    id = int(sheet.cell_value(row,0)) #获取第一行索引为0的数据
    plc_name = sheet.cell_value(row, 1)  # 获取PLC名
    plc_ip = sheet.cell_value(row, 2)  # 获取IP地址
    db_number = int(sheet.cell_value(row, 3))  # 获取DB块号
    start_address = int(sheet.cell_value(row,4)) #获取起始地址
    db_size = int(sheet.cell_value(row, 5))  # 获取DB大小
    data_type = sheet.cell_value(row, 6)  # 获取数据类型

5.将每一行的数据插入到列表中

python 复制代码
plc_info.append({'id':id,'name': plc_name, 'ip': plc_ip, 'db': db_number,
 'address': start_address,'db_size': db_size, 'data_type': data_type})

6.打印total_rows,plc_info

源码

python 复制代码
import xlrd

# 读取Excel文件
workbook = xlrd.open_workbook('plc.xlsx')
# 读取第一个表
sheet = workbook.sheet_by_index(0)
# 获取表格总行数
total_rows = sheet.nrows
print(total_rows)
# 获取表的PLC信息
plc_list = []
for row in range(1, total_rows):  # 获取第1到最后行的数据
    id = int(sheet.cell_value(row,0)) #获取第一行索引为0的数据
    plc_name = sheet.cell_value(row, 1)  # 获取PLC名
    plc_ip = sheet.cell_value(row, 2)  # 获取IP地址
    db_number = int(sheet.cell_value(row, 3))  # 获取DB块号
    start_address = int(sheet.cell_value(row,4)) #获取起始地址
    db_size = int(sheet.cell_value(row, 5))  # 获取DB大小
    data_type = sheet.cell_value(row, 6)  # 获取数据类型

    plc_list.append({'id':id,'name': plc_name, 'ip': plc_ip, 'db': db_number, 'address': start_address,
                            'db_size': db_size, 'data_type': data_type})
print(plc_list)

方法二:使用pandas

python 复制代码
import pandas as pd

1.读取excel表数据

python 复制代码
data = pd.read_excel('./plc.xlsx', sheet_name='plc')

2.创建列表,遍历表格数据存储到字典

python 复制代码
plc_list = []
for _, row in data.iterrows():
    plc_dict = {
        'id': row['id'],
        'plc_name':row['plc_name'],
        'plc_ip': row['plc_ip'],
        'db_number': row['db_number'],
        'start_address': row['start_address'],
        'db_size':row['db_size'],
        'data_type':row['data_type']
    }

3.将字典数据添加到列表中

python 复制代码
plc_list.append(plc_dict)

4.打印plc_list

源码

python 复制代码
import pandas as pd

# 读取excel表数据存储以字典存储到列表
data = pd.read_excel('./plc.xlsx', sheet_name='plc')
plc_list = []
for _, row in data.iterrows():
    plc_dict = {
        'id': row['id'],
        'plc_name':row['plc_name'],
        'plc_ip': row['plc_ip'],
        'db_number': row['db_number'],
        'start_address': row['start_address'],
        'db_size':row['db_size'],
        'data_type':row['data_type']
    }
    plc_list.append(plc_dict)
print(plc_list)
相关推荐
jimin_callon15 分钟前
VBA第三十八期 VBA自贡分把表格图表生成PPT
开发语言·python·powerpoint·编程·vba·deepseek
郭涤生36 分钟前
第三章:事务处理_《凤凰架构:构建可靠的大型分布式系统》
笔记·架构·系统架构
每次的天空38 分钟前
Android学习总结之算法篇五(字符串)
android·学习·算法
愚戏师1 小时前
软件工程(应试版)图形工具总结(二)
数据结构·c++·python·软件工程
NEET_LH1 小时前
金融数据分析(Python)个人学习笔记(6):安装相关软件
python·金融·数据分析
寻丶幽风1 小时前
论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
论文阅读·笔记·扩散模型·具身智能·双壁机器人
奕天者2 小时前
C++学习笔记(三十三)——forward_list
c++·笔记·学习
m0_689618282 小时前
看爬山虎学本领 软爬机器人来创新 各种场景能适应
笔记·机器人
珊瑚里的鱼2 小时前
第五讲(下)| string类的模拟实现
开发语言·c++·笔记·程序人生·算法·visualstudio·visual studio
哈哈哈哈哈哈哈哈哈...........2 小时前
【java】在 Java 中,获取一个类的`Class`对象有多种方式
java·开发语言·python