http:www.cnblogs.comfiremep3887284.html

    xiaoxiao2021-03-25  114

    Python处理Excel文档(xlrd, xlwt, xlutils)

    简介


    xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具。其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改。

    (以下属性或方法并非全部,需要更多属性请参看文档;建议先参考文末Demo,再深入了解)

     

    xlrd


    Book(class) 由xlrd.open_work("example.xls")返回

    nsheets:                      sheets数 sheet_names:                  sheet名称列表 sheets:                       sheet列表 sheet_by_index(sheetx):       按序号提取sheet sheet_by_name(sheet_name):    按名称提取sheet

    Sheet(class) 由Book object相关方法返回

    name:                         sheet名 nrows:                                          行数 ncols:                                          列数 cell(rowx,colx):                                第rows行colx列的单元格 cell_type(rowx,colx):                           数据类型 cell_value(rows,colx):                          数值 col(colx):                                      第colx列所有单元格组成的列表 col_slice(colx,start_rowx=0,end_rowx=None):     第colx列指定单元格组成的列表 col_types(colx,start_rowx=0,end_rowx=None):     第colx列指定单元格数值类型组成的列表 col_values(colx,start_rowx=0,end_rowx=None):    第colx列指定单元格数值组成的列表 row同样有col的各项操作,此处略去

    Cell(class) 由Sheet object(s)相关方法返回

    ctype:    一个int型变量,对应不同的数值类型 value:    单元格的值

     

    xlwt


    Workbook(class) 由xlwt.Workbook()返回

    encoding:                 编码方案 add_sheet(sheet_name):    添加sheet get_sheet(Sheet_name):    选择sheet save(file_name):          保存

    Worksheet(class) 由Workbook object相关方法返回 

    write(rows,colx,cell_value,style):         编辑单元格 row(rowx).write(colx,cell_value,style):    编辑行 flush_row_data():                          减少内存压力,flush之前行不可再修改 col(colx),write(rows,cell_value,style):    编辑列

    easyxf(function) 创建XFStyle instance,格式控制

    expression syntax: (<element>:(<attribute> <value>,)+;)+ <element> - <attribute> - <value>: (加粗为默认格式,以下所列并非全部) font      - bold          - True or False           - colour        - {colour}           - italic        - True or False           - name          - name of the font, Arial           - underline     - True or False

    alignment - direction     - general, lr, rl           - horizontal    - general, left, center, right, filled            - vertical      - bottom, top, center, justified, distributed           - shrink_to_fit - True or False

    bolders   - left          - an integer width between 0 and 13           - right         - an integer width between 0 and 13           - top           - an integer width between 0 and 13           - bottom        - an integer width between 0 and 13           - diag          - an integer width between 0 and 13           - left_colour   - {colour}*, automatic colour           - right_colour  - {colour}*, automatic colour           - ...

    pattern   - back_color    - {colour}*, automatic colour           - fore_colour   - {colour}*, automatic colour           - pattern       - none, solid, fine_dots, sparse_dots

     

    {colous}*: black, (dark_)(light_)blue, gold, (dark_)(light_)green, ivory, lavender,

               (light_)orange, pink, (dark_)red, rose, violet, white, (dark_)(light_)yellow, ...

     

    xlutils


    copy:       将xlrd.Book转为xlwt.Workbook styles:     读取xlrd.Workbook的每一个单元格的style display:    简单而安全地呈现xlrd读取的数据 filter:     拆分与整合多个xls文件 margins:    查看表格稀疏程度 save:       序列化xlrd.Book,转存为binary xls或stream

     

    Tips


    1. xlrd.open_workbook(fomatting_info=):当formatting_info=Ture,读取workbook并保留格式

    2. xlrd.open_workbook(on_demand=): 当on_demand=True,只有被要求时才将worksheet载入内存,读取大文件时使用

    3. xlwt.Worksheet.flush_row_data(): 减少内存占用,被刷新的行不能再访问或修改,建议每1000行刷新一次(若列很多当调整)

    4. xlwt.Workbook(encoding=): 选择创建的workbook的编码

     

    Demo


    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <span style = "font-family: 'courier new', courier;" > import xlrd import xlwt from xlutils.copy import copy   # xlrd book = xlrd.open_workbook( "example.xls" , formatting_info = True , on_demand = True ) sheet = book.sheet_by_index( 0 ) cell = sheet.cell( 0 , 0 )   # xlwt workbook = xlwt.Workbook() workbook.encoding = "utf-8" # Equals to workbook = xlwt.Workbook(encoding="utf-8") sheet = workbook.add_sheet( "Sheet1" , cell_overwrite_ok = True ) style = xlwt.easyxf(      "font: name Arial;"      "pattern: pattern solid, fore_colour red;"      ) sheet.write( 0 , 0 , "content of this cell" , style) sheet.row( 0 ).set_style(style) workbook.save( "example.xls" )   #xlutils workbook = copy(book) < / span>

     

    Reference


    1. The xlrd Module

    2. The xlwt Module

    3. Working with Excel files in Python

    转载请注明原文地址: https://ju.6miu.com/read-3467.html

    最新回复(0)