• Python 对 Excel 操作用法详解


    在python中,对excel表格读,写,追加数据,用以下三个模块:
    1、xlrd 读取excel表中的数据
    2、xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。
    3、xlutils 读入一个excel文件,然后进行修改或追加,不能操作xlsx,只能操作xls。
    一、读excel表
    读excel要用到xlrd模块
    1、导入模块  import xlrd

    2、打开excel文件

    table = data.sheets()[0] #通过索引顺序获取
    table = data.sheet_by_index(0) #通过索引顺序获取
    table = data.sheet_by_name(u'Sheet1')#通过名称获取


    代码如下:

    import xlrd
    data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
    table1 = data.sheets()[0]
    table2 = data.sheet_by_index(0)
    table3=data.sheet_by_name(u'Sheet1')
    print(table1)
    print(table2)
    print(table3)

    返回:

    <xlrd.sheet.Sheet object at 0x0000000002F7F208>
    <xlrd.sheet.Sheet object at 0x0000000002F7F208>
    <xlrd.sheet.Sheet object at 0x0000000002F7F208>

    3、获取行数和列数

    import xlrd
    data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
    table = data.sheets()[0]
    nrows = table.nrows
    ncols = table.ncols
    print("行数:%d\n列数:%d"%(nrows,ncols))

    返回:

    行数:13
    列数:3

    4、获取整行和整列的值,以列表形式返回

    rows = table.row_values(0)
    cols = table.col_values(0)
    print("rows:%s\ncols:%s"%(rows,cols))

    返回:

    rows:['A1', 'B1', 'C1']
    cols:['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13']

    5、获取单元格数据

    cell_A1 = table.cell_value(0,0)
    cell_C4 = table.cell_value(3,2)
    print("A1:%s\nC4:%s"%(cell_A1,cell_C4))

    返回:

    A1:A1
    C4:C4

    还可以使用行列索引来获取单元格数据

    cell_A1 = table.row(0)[0].value
    cell_C4 = table.col(2)[3].value
    print("A1:%s\nC4:%s"%(cell_A1,cell_C4))

    返回:

    A1:A1
    C4:C4

    三、写excel操作
    1、导入:

    import xlwt

    2、创建workbook

    workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)

    encoding:设置字符编码,一般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中文了。默认是ascii
    style_compression:表示是否压缩,不常用。
    3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格

    sheet = workbook.add_sheet('test', cell_overwrite_ok=True)

    其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False
    4、向表中添加数据

    sheet.write(0, 0, 'EnglishName') # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容
    sheet.write(1, 0, 'Marcovaldo')
    txt1 = '中文名字'
    sheet.write(0, 1, txt1)
    txt2 = '马可瓦多'
    sheet.write(1, 1, txt2)

    5、保存

    workbook.save(r'e:\test1.xls')

    四、追加数据

    import xlrd
    import xlutils.copy
    data = xlrd.open_workbook(r'C:\Users\907968\Desktop\test222.xls')
    ws = xlutils.copy.copy(data)
    table=ws.get_sheet(0)
    table.write(0,3,'D1')
    ws.save(r'C:\Users\907968\Desktop\test222.xls')

    追加前:
    A1 B1 C1
    追加后:
    A1 B1 C1 D1
    ---------------------
    作者:EastonLiu
    来源:CSDN
    原文:https://blog.csdn.net/lmj19851117/article/details/78814721
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    JMeter压力测试入门教程[图文]
    从技术转管理的困惑
    APP纯黑盒测试—某些可以试试的操作
    测试网站访问速度的方法(GTmetrix)
    【转】web测试技术经典案例(基础、全面)
    【转】H5页面的测试点总结
    【转】测试思考之——思想有多远,你就能走多远
    【转】测试趋势之我的观点
    线程学习一
    继承log4.net的类
  • 原文地址:https://www.cnblogs.com/djtang/p/9732200.html
Copyright © 2020-2023  润新知