IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python中使用xlrd模块读取excel文件 -> 正文阅读

[开发工具]python中使用xlrd模块读取excel文件


一、xlrd是什么?


Python语言中,读取Excel的扩展工具。


二、使用步骤


1.安装xlrd模块

方法一:pip指定安装1.2.0版本(高版本会无法读取xlsx文件):

pip install xlrd==1.2.0

方法二:pycharm里搜索xlrd模块安装:
在这里插入图片描述

2.读取excel文件

表格内容如下:
在这里插入图片描述
代码内容如下(已将代码封装好):

# 读取excel
class ReadExcel:
    # 传入excel路径和sheet名称
    def __init__(self, file_path, sheet_name):
        self.file_path = file_path
        self.sheet_name = sheet_name
        self.sheet = self.get_sheet()

    # 根据sheet名称获取表格对象
    def get_sheet(self):
        wb = xlrd.open_workbook(self.file_path)
        sheet = wb.sheet_by_name(self.sheet_name)
        return sheet

    # 根据行列获取单元格数据
    def __get_cell_value(self, rows, cols):
        cell_value = self.sheet.cell_value(rows, cols)
        return cell_value

    # 获取excel行
    def get_rows(self):
        rows = self.sheet.nrows
        return rows

    # 获取excel列
    def get_cols(self):
        cols = self.sheet.ncols
        return cols

    # 获取合并单元格的值,返回合并单元格的起始行,结束行,起始列,结束列
    def get_merged_info(self):
        merged_info = self.sheet.merged_cells
        return merged_info

    # 获取excel数据(处理了合并和未合并单元格的所有数据)
    def get_merged_cell_value(self, row_index, col_index):
        # 如果没有合并的单元格,则正常据行列获取单元格数据
        if not self.get_merged_info():
            cell_value = self.__get_cell_value(row_index, col_index)
        # 否则遍历获取到的合并单元格的数据来取数据
        else:
            # 遍历合并单元格的数据
            for (r_low, r_high, c_low, c_high) in self.get_merged_info():
                # 如果传进来的行列处于合并单元格中
                if r_low <= row_index < r_high and c_low <= col_index < c_high:
                    # 就取合并单元格中的数据
                    cell_value = self.__get_cell_value(r_low, c_low)
                    break
            # 否则根据传进来的行列取数据
            else:
                cell_value = self.__get_cell_value(row_index, col_index)
        return cell_value

    # 将数据转化为字典
    def get_sheet_data_by_dict(self):
        all_data_list = []
        first_row = self.sheet.row(0)
        for row in range(1, self.get_rows()):
            row_dict = {}
            for col in range(0, self.get_cols()):
                row_dict[first_row[col].value] = self.get_merged_cell_value(row, col)
            all_data_list.append(row_dict)
        return all_data_list


if __name__ == '__main__':
    excel_path = os.path.join(os.path.dirname(__file__), '../data/user.xlsx')
    excel = ReadExcel(excel_path, 'register')
    print(excel.get_merged_info())
    print(excel.get_merged_cell_value(1, 5))

代码运行结果如下:
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:38:08  更:2021-10-13 11:39:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:56:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码