zoukankan      html  css  js  c++  java
  • 使用openpyxl进行Excel操作 (基础)

    操作Excel ,使用第三方库,使用别人写好的代码,

    这是使用 openpyxl 操作 2010 版之后的 xlsx 格式。

    有些2003经典版是无法使用的,只能使用其他库 比如:xlrd,xlwt 。

    其中 tablib 可以都支持,但是它的依赖比较大,使用起来复制,感兴趣的小伙伴可以自行百度 

    一、 安装 openpyxl

    pip install openpyxl

    二、导入 openpyxl

    import openpyxl 

    1、打开 excel 文件获取工作簿 (文件内容见最下方 截图 )

    # 有一个必填项,可填写 文件的路 径或者 文件对象
    wb = openpyxl.load_workbook('D:datas.xlsx')
    print(wb)

    2、获取表单(一个excel 文件可以有过个表单)

    # 获取所有表单
    sheet = wb.worksheets
    print(sheet)
    # 通过索引获取表单,索引从 0 开始 
    sheet = wb.worksheets[0]
    print(sheet)
    # 通过表单名字获取表单.有个问题,之后使用 sheet 后无法 点 出提示
    sheet = wb.get_sheet_by_name('Sheet1')
    print(sheet)
    # 简洁版 通过字典的形式. 问题和上面一样
    sheet = wb['Sheet1']
    print(sheet)

    3、获取单元格数据

      1、获取一个单元格 。

            获取的数据就是一个普通的字符串或者一个数字。

    # 获取某一个单元格的值.  cell() 第一个row传行数、第二个column传列数,
    # 单元格以 1 开头,和python索引区分
    cell = sheet.cell(1, 1).value
    print(cell)  # url

      2、获取 一行/一列 单元格 。

            获取有多个数据,多行数据存储一般用,列表、字典、元组。

    # 获取一行的数据
    cell = sheet[1]
    print(cell)   # 获取的一个元组,里面包含 单元格的对象  尖括号就是一个对象
    #  输出数据  (<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)
    
    # 获取一列的数据
    cell = sheet['A']
    print(cell)

      3、获取 多行/多列 单元格 。

            得到的数据一般来说是嵌套的数据,比如嵌套的列表等

    # 获取所有的行,最简单的方法
    data = sheet.rows
    data_list = list(data)[1:]  # 剔除第一条数据,第一条是标题

    # 获取所有数据
    data_list = list(sheet.rows)[1:]  # 剔除第一条数据,第一条是标题
    new_data = []  # 新列表储存数据#
    for row in data_list:
        # 每一行的数据存储起来 每循环一次清空
        row_data = []
        # 把 row 里面的数据依次提取出来
        for cell in row:
            # 把值添加到 row_data 列表中
            row_data.append(cell.value)
        # 每循环一次,往 new_data 添加一次数据
        new_data.append(row_data)
    print(new_data)
    
    

    4、 写操作,写完一定要保存,使用文件后要关闭  (使用写操作运行代码前一定要关闭文件,否则会报错

    #
    sheet.cell(2, 1).value = '12306'

    # 保存 提供保存的路径,不是之前的路径那就是另存为 wb.save(r'D:datas.xlsx')
    # 关闭 wb.close()

  • 相关阅读:
    Windows Azure Web Site (19) Azure Web App链接到VSTS
    Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job
    Azure PowerShell (16) 并行开关机Azure ARM VM
    Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering
    Azure ARM (21) Azure订阅的两种管理模式
    Windows Azure Platform Introduction (14) 申请海外的Windows Azure账户
    Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
    Azure ARM (19) 将传统的ASM VM迁移到ARM VM (2)
    Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)
    Azure Automation (6) 执行Azure SQL Job
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12177449.html
Copyright © 2011-2022 走看看