zoukankan      html  css  js  c++  java
  • openpyxl 读写 xlsx文件

    1.1 openpyxl 基本使用

      1、openpyxl 将xlsx读成json格式

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    # -*- coding: utf-8 -*-
    import json
    from openpyxl import load_workbook
    
    
    def read_xlsx_to_json(file_home):
        wb = load_workbook(filename= file_home)
        sheet_ranges = wb['Sheet1']
        ws = wb['Sheet1']
        rows = ws.rows    #获取表格所有行和列,两者都是可迭代的
        thead = [col.value for col in rows.next()]  # 表格中第一行作为key
        data = []
        for row in rows:
            line = [col.value for col in row]
            tmp_dic = {}
            for index, val in enumerate(thead):
                tmp_dic[val] = line[index]
            data.append(tmp_dic)
        return json.dumps(data, ensure_ascii=False,indent=4)
    
    
    # print read_xlsx_to_json('dd.xlsx')
    
    
    '''
    [
        {
            "员工编号": null, 
            "部门名称": "HLT集团", 
            "手机号": 1393999934, 
            "角色": null, 
            "直属上级": null, 
            "职位": "CEO", 
            "企业微信唯一标识": null, 
            "相关部门": null, 
            "姓名": "王五", 
            "邮箱": "zhangsan@qq.com", 
            "职能": null, 
            "性别": "男"
        }, 
        {
            "员工编号": null, 
            "部门名称": "政府事业部", 
            "手机号": 61616116161616, 
            "角色": null, 
            "直属上级": "王五", 
            "职位": "首席运营官", 
            "企业微信唯一标识": null, 
            "相关部门": null, 
            "姓名": "李四", 
            "邮箱": "lisi@qq.com", 
            "职能": null, 
            "性别": "女"
        }
    ]
    '''
    openpyxl 将xlsx读成json格式

      2、openpyxl 创建一个 xlsx 文件

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    import json
    from openpyxl import Workbook
    
    
    # 创建 一个 xlsx 文件
    def create_xlsx(data_list):
        wb = Workbook()  # 创建工作簿
        ws = wb.active  # 激活工作表
        ws1 = wb.create_sheet("Mysheet")  # 创建mysheet表
        ws.title = "New Title"  # 表明改为New Title
        ws.sheet_properties.tabColor = "1072BA"  # 颜色
    
        for row_index, row in enumerate(data_list):
            thead_list = data_list[0]  # ['id', 'name', 'sex', 'age']
            row_index += 1  # excel中 行是从 1 开始计算的
    
            for column_index, thead in enumerate(thead_list):
                column_index += 1  # excel中 行是从 1 开始计算的
    
                if row_index == 1:            #第一步: 填充第一行数据,表头(id  name  sex  age)
                    d = ws.cell(row=1, column=column_index, value=thead)
                else:                         #第二步: 新建表中数据
                    d = ws.cell(row=row_index, column=column_index, value=row[column_index-1])
            wb.save('test.xlsx')#保存
    
    
    data_list = [
        ['id','name','sex','age'],
        ['1','张三','','18'],
        ['2','李四','','19'],
        ['3','王五','','20'],
    ]
    create_xlsx(data_list)
    openpyxl 创建一个 xlsx 文件

          

      3、openpyxl 修改 第十列的值

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    import json
    from openpyxl import load_workbook
    
    
    # 将表中第十行的值统一修改为 ‘new val’
    def change_xlsx(file_home):
        wb = load_workbook(filename= file_home)
        sheet_ranges = wb['Sheet1']
        ws = wb['Sheet1']
        rows = ws.rows    #获取表格所有行和列,两者都是可迭代的
        for row, line in enumerate(rows):
            if row != 0:
                row += 1
                ws.cell(row=row, column=10).value = 'new val'
        wb.save('f5.xlsx')
    
    
    change_xlsx('dd.xlsx')
    openpyxl修改第四列的值
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    from openpyxl import load_workbook
    
    file_home = 'f5.xlsx'
    wb = load_workbook(filename= file_home)
    sheet_ranges = wb['Sheet1']
    ws = wb['Sheet1']
    
    # 将第二行,第二列的值修改成 '修改后的值'
    ws.cell(row=2, column=2).value = '修改后的值'
    wb.save('f6.xlsx')
    openpyxl修改基本用法

      4、在xlsx文件后面添加新的内容(插入时按照数据顺序)

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    import json, sys
    from openpyxl import load_workbook
    
    
    # 在xlsx文件最后添加新的数据,会按照顺序插入到xlsx文件对应位置
    def append_xlsx(file_home, data_list):
        '''
        :param file_home: xlsx文件路径
        :param data_list: 插入的数据
        '''
        wb = load_workbook(filename= file_home)
        sheet_ranges = wb['Sheet1']
        ws = wb['Sheet1']
        print data_list
        ws.append(data_list)
        wb.save('f7.xlsx')
    
    
    data_list = ['邮箱', '', '手机号', '性别']
    append_xlsx('dd.xlsx',data_list)
    在xlsx文件后面添加新的内容
  • 相关阅读:
    比较Activiti中三种不同的表单及其应用
    Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)
    activiti学习笔记 ----------------------------FormService
    activiti学习笔记---managementService
    Activiti5 学习笔记—— comment 批注
    Activiti6-流程跟踪监控图-节点-流程线高亮显示-支持通过、不通过、驳回、退回
    Activiti 快速入门教程:SpringBoot 集成 Activiti6 + Activiti Modeler 流程配置可视化
    工作流学习——Activiti流程变量五步曲
    利用Python中的mock库对Python代码进行模拟测试
    密码校验正则 -- 数字、字符、特殊符号
  • 原文地址:https://www.cnblogs.com/jiaxinzhu/p/12596183.html
Copyright © 2011-2022 走看看