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)