zoukankan      html  css  js  c++  java
  • python操作Excel(模块xlrd)

    #!/usr/bin/env python3
    # -*-coding:utf-8-*-
    # __author__: hunter
    
    import xlrd
    import unittest
    
    
    class Data_excel(unittest.TestCase):
        file_addrec = 'D:/hunter_/interfaceTest/interface/tool/demo.xlsx'  # 定义全局变量,damo.xlsx数据维护Excel的路径文件
    
        def open_excel(self, file=file_addrec):
    
            self.data = xlrd.open_workbook(file)            # 得到一个excel文件的book对象,并赋值给一个变量
            return self.data                                # 返回data
    
            # try:                                            # 检查文件有没有获取到
            #     self.data = xlrd.open_workbook(file)        # 得到一个excel文件的book对象,并赋值给一个变量
            #     return self.data                            # 返回data
            # except Exception:
            #     print(file)
            #     print('eero')
    
        # 把读取到的Excel封装在excel_table_byindex函数中,需要三个参数,1、文件file  2、sheet名称by_index  3、列所在的行数colnameindex
        def excel_table_byindex(self, file=file_addrec, by_index='case', colnameindex=0):
            self.data = xlrd.open_workbook(file)  # 获取Excel数据
            self.table = self.data.sheet_by_name(by_index)  # 使用sheet_by_name获取sheet页名叫用户表的sheet对象数据
            self.colnames = self.table.row_values(colnameindex)  # 获取行数下标为0也就是第一行Excel中第一行的所有的数据值
            self.nrows = self.table.nrows  # 获得所有的有效行数
            list = []  # 总体思路是把Excel中数据中数据以字典的形式存在字符串中一个字典当成一个列表元素
            for rownum in range(1, self.nrows):
                row = self.table.row_values(rownum)  # 获取所有行数每一行的数据值
                if row:
                    app = {}  # 以字典格式显示,至于字典中有多少元素主要看有多少列
                    for i in range(len(self.colnames)):
                        app[self.colnames[i]] = row[i]
                    list.append(app)
    
            print(list)
            return list
    
    
    a = Data_excel()
    a.excel_table_byindex()
    
    if __name__ == '__main__':
        unittest.main()

    操作结果:

     Excel表:

  • 相关阅读:
    ios专题 - OCUnit
    ios专题 - APP设计流程
    ios专题 - openSSL
    iOS开发获取缓存文件的大小并清除缓存
    支付宝“订单交易失败 ALI64” 报错的原因
    先登录 在跳转到tabBar
    首页 导航栏隐藏 下一级页面显示,pop回来遇到的问题
    invalid nib registered for identifier (重用符)
    iOS开发集成微信支付
    NSdata 与 NSString,Byte数组,UIImage 的相互转换
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11573728.html
Copyright © 2011-2022 走看看