• xlrd 处理Excel文件


    1.1 xlrd处理.xlsx 文件

      1、xlrd常用方法

    #!/usr/bin/python
    # coding:utf-8
    # 用xlrd读取Excel文件基本用法
    import sys
    import xlrd
    import json
    
    # 设置编码格式
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    # 1. 从Excel文件中读取出Book对象
    data = xlrd.open_workbook('./data.xlsx')
    
    # 2. 获取sheet页对象
    sheet1 = data.sheet_by_index(0)
    
    # 3. 获取sheet页的行数和列数
    nrows = sheet1.nrows
    ncols = sheet1.ncols
    
    # 4. 获取单元格第0行的值(是一个列表)
    row_data = sheet1.row_values(0)
    
    # 5. 获取单元格第0列的值(是一个列表)
    col_data = sheet1.col_values(0)
    
    # 6. 获取单元格第0行第0列数据
    cell_A1 = sheet1.cell(0, 0)
    xlrd常用方法

      2、xlrd将 .xlsx读取成json格式

    #!/usr/bin/python
    # coding:utf-8
    # 用xlrd读取Excel文件基本用法
    import sys
    import xlrd
    import json
    
    reload(sys)
    sys.setdefaultencoding('utf-8')  # 设置编码格式
    data = xlrd.open_workbook('./data.xlsx')   # 从Excel文件中读取出Book对象
    sheet1 = data.sheet_by_index(0)
    nrows = sheet1.nrows
    idx = sheet1.row_values(0)  # 索引(即第一列数据:表头)
    data = []  # 最终的数据列表
    for i in range(1, nrows):  # 从第1行开始遍历循环所有行,获取每行的数据
        row_data = sheet1.row_values(i)
        row_data_dict = {}    # 组建每一行数据的字典
        for j in range(len(row_data)):  # 遍历行数据的每一项,赋值进行数据字典
            item = row_data[j]
            row_data_dict[idx[j]] = item
        data.append(row_data_dict)
    
    print json.dumps(data, indent=4)
    
    
    '''
    [{
            "状态": "在职",
            "角色(负责人、员工)": "负责人",
            "手机号": 15134345678,
            "汇报人": "tom",
            "离职交接人": "",
            "二级部门": "AI实验室",
            "姓名": "闫峻",
            "三级部门": "",
            "工号": 406.0,
            "一级部门": "基础数据平台部",
            "性别": "男",
            "备注": ""
        },
        {
            "状态": "在职",
            "角色(负责人、员工)": "员工",
            "手机号": 15223457654,
            "汇报人": "jack",
            "离职交接人": "",
            "二级部门": "AI实验室",
            "姓名": "丁浩洋",
            "三级部门": "",
            "工号": 207.0,
            "一级部门": "基础数据平台部",
            "性别": "男",
            "备注": ""
        }
    ]
    '''
    xlrd将 .xlsx读取成json格式

      3、自定义索引 转换 .xlsx文件为json

    #!/usr/bin/python
    # coding:utf-8
    import sys
    import xlrd
    import json
    
    reload(sys)
    sys.setdefaultencoding('utf-8')  # 设置编码格式
    
    
    def xlsx_to_json(filename, idx):
        '''
        :param filename: .xlsx 文件 路径
        :param idx:  字典 key 值(可以为表头)
        '''
        data = xlrd.open_workbook(filename)  # 从Excel文件中读取出Book对象
        sheet1 = data.sheet_by_index(0)
        nrows = sheet1.nrows
        data = []  # 最终的数据列表
        for i in range(1, nrows):  # 从第1行开始遍历循环所有行,获取每行的数据
            row_data = sheet1.row_values(i)
            row_data_dict = {}  # 组建每一行数据的字典
            for j in range(len(row_data)):  # 遍历行数据的每一项,赋值进行数据字典
                item = row_data[j]
                if idx[j] == 'jobid' or idx[j] == 'phone':  # 电话/工号 浮点数改成整数
                    if isinstance(item, float):
                        item = int(item)
                row_data_dict[idx[j]] = item
            data.append(row_data_dict)
        return json.dumps(data)
    
    
    idx = ['jobid','name','sex','level1','level2','level3','role','report_line','phone','usable','hand_people','tag']
    ret = xlsx_to_json('data.xlsx', idx)
    print ret
    自定义索引 转换 .xlsx文件为json
  • 相关阅读:
    初识NuGet
    NHibernate之映射文件配置说
    NHibernate 数据查询之QueryOver<T>
    一、NHibernate配置所支持的属性
    javascript forEach无法break,使用every代替
    missing ) after argument list
    数组分组chunk的一种写法
    call和apply第一个参数为null/undefined,函数this指向全局对象
    apply的理解和数组降维
    javascript push 和 concat 的区别
  • 原文地址:https://www.cnblogs.com/jiaxinzhu/p/12596176.html
Copyright © 2020-2023  润新知