• Python之Excel编程


    excel编程:excel中是unicode编码方式
    需要使用xrld,xlwt和openpyxl这三个模块,需先通过pip install下载
        xlrd 读取模块:xls,xlsx
        xlwt:写的模块:xls
        openpyxl:可读写
    一、xlrd
    import xlrd
    1、通过excel获取具体的sheet
    (1)获取整个Excel
    workBook=xlrd.open_workbook('path')
    这一句是把所有内容赋值给workBook,然后把句柄关闭。所以不需要做关闭文件的操作
    一个excel可以由多个shee组成
    (2)获取所有的sheet
    sheetList=workBook.sheets()
    (3)获取某一个sheet
    sheet1=sheetList[0] 获取第一个sheet
    workBook.sheet_by_index(0) 通过列表的下标,直接获取第一个sheet
    workBook.sheet_by_name(u'中国') 通过sheet名来获取sheet
    2、操作单元格
    (1)获取某一行的数据
    rowList=shee1.row_values(0) 获取第一行的数据
    rowList[3] 获取第一行第四列的数据
    (2)获取某个单元格的数据
    cell = sheet1.cell(0,4) 获取第一行第五列的单元格的数据
    print cell.value 打印单元格的数据
     
    (3)获取某一列的数据
    colList=sheet1.col_values(1) 获取第二列的数据
    colList[2] 第二列第三行的数据
     
    3、最后一个单元格被使用的位置
    sheet1.nrows 行数
    sheet1.ncols 列数
     
    二、xlwt 写模块,写入到一个新的文件中,可以覆盖写
    1、生成workBook
    workBook=xlwt.Workbook(encoding='utf-8')
    encoding默认是ascii,需要 重新定义编码方式
     
    2、生成sheet
    sheet1=workBook.add_sheet('test2') 添加一个名字为test2的sheet
    print sheet1.name
    3、定位单元格cell
    sheet1.write(r=2,c=2,label='test data')
    r 行号 c:列号 label :写的内容
    4、 保存写的内容到指定的位置
    wordBook.save('d:\tmp\test1.xls') 文件格式只能是xls
     
    三、openpyxl读
    95%的时间使用的是这个模块,目前excel处理的模块,只有这个还在维护
    1、workBook
    workBook=openpyxl.load_workbook('path(.xlsx)').encode('gbk')
    print workBook
    2、sheet
    sheetList=workBook.get_sheet_names() 获取所有sheet的名称,保存为列表格式
    print sheetList
    3、cell
    (1)sheet1=workBook.get_sheet_by_name('test1') 获取某一个具体的sheet
    (2)rowsData=sheet1.rows 获取所有的行,返回一个迭代器
    行和列都是从1开始的,不是从0
    for i in rowsData:
    #print i
    #print type(i) 元组格式
    for j in i:
    print j.coordinate(每一个cell的下表),j.value(cell的值), 打印出所有cell的内容
    print
    (3)colsData=sheet1.columns 获取所有的列,并返回迭代器
    (4)更新某个单元格
    j.value=u'重新赋值'
    workBook.save(path(之前操作的路径))
     
    4、单元格的定位
    两种方式:
    (1)c1=sheet1.cell(coordinate='B2')
    print c1.value
    (2)c2=sheet1['B2'] 字典格式:通过key值找value
    print c2.value
    (3)c1=sheet1.cell(row=2,column=3) 第二行第三列
    print c1.value
    (4)切片,获取一个区域的单元格
    area=sheet1['C2':'D7'] 得到一个元组
    print area 元组里面嵌套元组
    for i in area:
    # print i
    for j in i:
    pass
    # print j
    print j.coordinate,
    j.value = j.coordinate
    print
     
     
    四、写单元格
    1、写workBook
    workBook=openpyxl.Workbook()
    2、sheet
    sheet1=workBook.create_sheet(title='sheet1',index=0)
    index=0 定位第几个sheet
    3、cell
    sheet1['B6'].value=u'testB6'
    workBook.save(path)
     
    4、在下一空行整行写入
    sheet1.append([1,2,3,4,5,6,7])
     
    五、excel相关的样式操作
    import openpyxl
    from openpyxl.styles import PatternFill,Alignment,Font,colors
    workBook=openpyxl.Workbook()
    sheet1=workBook.create_sheet('test')
    1、合并单元格,两种方式
    (1)sheet1.merge_cells(range_string='A2:G2')
    (2)sheet1.merge_cells(start_row=2,start_column='A',end_row=2,end_column='G')
    2、设置排版样式:对齐方式
    al=Alignment(horizontal='center') horizontal:left,center,right
    sheet1['A2'].alignment=al
     
    3、设置背景颜色
    fill=PatternFill(patternType='solid',fgColor=colors.BLUE)
    sheet1['A2'].fill=fill
     
    4、字体的颜色
    sheet1[A2].value
    font=Font(colors=colors.WHITE,size=14)
    sheet1['A2'].font=font
  • 相关阅读:
    Java中怎么控制线程訪问资源的数量
    我的Hook学习笔记
    《编写可读代码的艺术》——简单总结
    Hdu 1016 Prime Ring Problem (素数环经典dfs)
    setsockopt()使用方法(參数具体说明)
    Html5培训之精髓
    [unity3d]unity平台的预处理
    音频编辑大师 3.3 注冊名 注冊码
    linux tar.gz zip 解压缩 压缩命令
    面向对象的三个基本特征
  • 原文地址:https://www.cnblogs.com/emily-qin/p/7063465.html
Copyright © 2020-2023  润新知