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()

  • 相关阅读:
    SOAP-ERROR: Encoding: string … is not a valid utf-8 string
    [Client] looks like we got no XML document in....
    php webservice服务端和客户端的实现
    php的soap无故出错的真凶:wsdl缓存
    php无wsdl webservice服务用法
    mysql时间运算
    PHP 操作XML文档
    YII框架安装过程-数据库访问
    【Database】MongoDB教程
    【JavaScript】HTML5存储方案
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12177449.html
Copyright © 2011-2022 走看看