python读写excel

Python操作excel表,需要用到两个库:xlrd和xlwt

1、获取excel表Book对象实例:

  book = xlrd.open_workbook(filepath)

2、获取excel的Sheet对象

  sheet_nums = book.nsheets    获取Sheet对象个数

  sheet = book.sheet_by_index(index) 下标从0开始

  sheet = book.sheet_by_name(name) 根据sheet的名字找到对应的Sheet对象

  sheets = book.sheets()        获取所有的Sheet对象列表

  sheets_name = book.sheet_names()  返回所有Sheet的名字列表

3、Sheet对象属性及方法简介:

  cell = sheet.cell(rowIndex,colIndex)  # 返回指定单元格

  sheet.cell_type(rowIndex,colIndex)  #返回指定单元格的类型 等同于 cell.ctype,excel中对应的单元格类型如下: 

    XL_CELL_BLANK = 6  # 空(这种情况目前没有测试出来,不知道什么时候会出现这种情况)
    XL_CELL_BOOLEAN = 4 # 布尔
    XL_CELL_DATE = 3    # 日期
    XL_CELL_EMPTY = 0    # 空 (测试了下,当单元格不输入任何内容时为empty,输入空格,会当成text类型处理)
    XL_CELL_ERROR = 5   # 错误
    XL_CELL_NUMBER = 2   # 数字
    XL_CELL_TEXT = 1    # 字符串

  sheet.cell_value(rowIndex,colIndex)     # 返回指定单元格的值 等同于 cell.value

  sheet.col(colIndex)  # 返回指定列单元格信息列表

  sheet.col_slice(colIndex, start_rowIndex, end_rowIndex)  # 返回指定列中指定行对应的单元格信息列表

  sheet.col_types(colIndex, start_rowIndex, end_rowIndex) # 返回指定列中指定行对应的单元格的类型列表

  sheet.col_values(colIndex, start_rowIndex, end_rowIndex) # 返回指定行中指定列对应的单元格的值列表

  sheet.get_rows()  # 返回一个行的生成器对象

  sheet.row(rowIndex)  # 返回指定行单元格信息列表

  sheet.row_len(rowIndex)  #返回指定行单元格数量

  sheet.row_slice(rowIndex, start_colIndex, end_colIndex)  # 返回指定行中指定列对应的单元格信息列表

  sheet.row_types(rowIndex, start_colIndex, end_colIndex)  # 返回指定行中指定列对应单元格类型

  sheet.row_values(rowIndex, start_colIndex, end_colIndex)  # 返回指定行中指定列对应的单元格值列表

  sheet.put_cell(rowIndex, colIndex,type,text,xf_index)  #行号,列号,单元格类型,单元格值,xf_index: 字体,对齐,一般设置为None即可

  sheet.nrows  # nrows属性 返回总行数

  sheet.ncols  # ncols 属性 返回总行数

4、调用xlwt的Sheet的write函数,写入新的excel文件

  wbook = xlwt.Workbook()

  wsheet = wbook.add_sheet(sheet_name)

  style = xlwt.easyxf("align:vertical center, horizontal center")

  for r in range(sheet.nrows):

    for c in range(sheet.ncols):

      wsheet.write(r,c, sheet.cell_value(r,c),style)

  wbook.save(newFile)

  

原文地址:https://www.cnblogs.com/fiona-zhong/p/9915416.html