xlrd

作者: 弦好想断 | 来源:发表于2020-07-28 12:48 被阅读0次
import xlrd
""" 打开excel表格"""
workbook = xlrd.open_workbook(r"C:\Users\D1M\Desktop\7-24\thelaundress8月份人群策略0724V2.xlsx")
print(workbook)             

""" 获取所有sheet名称"""
sheet_names = workbook.sheet_names()
print("所有sheet名称:",sheet_names)        
""" 获取所有或某个sheet对象"""
# 获取所有的sheet对象
sheets_object = workbook.sheets()
print("获取所有的sheet对象",sheets_object)        

# 通过index获取第一个sheet对象
sheet1_object = workbook.sheet_by_index(0)
print("通过index获取第一个sheet对象",sheet1_object)        
# 通过name获取第一个sheet对象
sheet1_object = workbook.sheet_by_name(sheet_name=sheet_names[0])
print("通过name获取第一个sheet对象",sheet1_object)       
""" 判断某个sheet是否已导入"""
# 通过index判断sheet1是否导入
sheet1_is_load = workbook.sheet_loaded(sheet_name_or_index=0)
print(sheet1_is_load)       # 结果:True
# 通过sheet名称判断sheet1是否导入
sheet1_is_load = workbook.sheet_loaded(sheet_name_or_index=sheet_names[0])
print(sheet1_is_load)       # 结果:True
""" 对sheet对象中的行执行操作:如有效行数、某行从n1到n2列的数据、某行的单元和类型、某行的长度...... """
# 获取sheet1中的有效行数
nrows = sheet1_object.nrows
print("sheet1中有效行数为",nrows)                
# 获取sheet1中第3行的数据
all_row_values = sheet1_object.row_values(rowx=2)
print("sheet1中第3行的数据为:",all_row_values)           
row_values = sheet1_object.row_values(rowx=2, start_colx=1, end_colx=3)
print("sheet1中第3行第2-4列的数据",row_values)              
# 获取sheet1中第3行的单元对象
row_object = sheet1_object.row(rowx=2)
print("sheet1中第3行的单元对象",row_object)               
# 获取sheet1中第3行的单元
row_slice = sheet1_object.row_slice(rowx=2)
print("sheet1中第3行的单元",row_slice)                
# 获取sheet1中第3行的单元类型
row_types = sheet1_object.row_types(rowx=2)
print("sheet1中第3行的单元类型",row_types)                
# 获取sheet1中第3行的长度
row_len = sheet1_object.row_len(rowx=2)
print("sheet1中第3行的长度",row_len)                  # 结果:4
# 获取sheet1所有行的生成器
rows_generator = sheet1_object.get_rows()
print("获取sheet1所有行的生成器",rows_generator)           
""" 对sheet对象中的列执行操作:"""
# 获取sheet1中的有效列数
ncols = sheet1_object.ncols
print("sheet1中的有效列数",ncols)                # 结果:4
# 获取sheet1中第colx+1列的数据
col_values = sheet1_object.col_values(colx=1)
print("sheet1中第colx+1列的数据",col_values)           
col_values1 = sheet1_object.col_values(1, 1, 3)
print("sheet1中第colx+1列第2-4行的数据",col_values1)          
# 获取sheet1中第2列的单元
col_slice = sheet1_object.col_slice(colx=1)
print("sheet1中第2列的单元",col_slice)            
# 获取sheet1中第2列的单元类型
col_types = sheet1_object.col_types(colx=1)
print("sheet1中第2列的单元类型",col_types)           
"""对sheet对象中的单元执行操作"""
# 获取sheet1中第rowx+1行,第colx+1列的单元对象
cell_info = sheet1_object.cell(rowx=1, colx=0)
print("sheet1中第rowx+1行,第colx+1列的单元对象",cell_info)           
print(type(cell_info))     # 结果:<class 'xlrd.sheet.Cell'>
# 获取sheet1中第rowx+1行,第colx+1列的单元值
cell_value = sheet1_object.cell_value(rowx=1, colx=1)
print("sheet1中第rowx+1行,第colx+1列的单元值",cell_value)          
# 获取sheet1中第rowx+1行,第colx+1列的单元类型值
cell_type = sheet1_object.cell_type(rowx=1, colx=0)
print("sheet1中第rowx+1行,第colx+1列的单元类型值",cell_type)            
# 写入excel

# 使用xlutils将xlrd读取的对象转为xlwt可操作对象,table即上述xlrd读取的table
workbook = xlutils.copy(table)

# 或者如果你只是想创建一张空表
workbook = xlwt.Workbook(encoding = 'utf-8')

# 创建一个sheet
worksheet = workbook.add_sheet('sheet')
# 获取一个已存在的sheet
worksheet = workbook.get_sheet('sheet')

# 写入一个值,括号内分别为行数、列数、内容
worksheet.write(row, column, "memeda")

workbook.save('memeda.xls')

#带样式写入示例

workbook = xlwt.Workbook(encoding = 'utf-8')
style = xlwt.XFStyle()
font = xlwt.Font() # 创建字体
font.name = 'Arial'
font.bold = True # 黑体
font.underline = True # 下划线
font.italic = True # 斜体字
font.colour_index = 2 # 颜色为红色
style.font = font
worksheet.write(row, column, "memeda", style)
workbook.save('memeda.xls')

输出多种颜色字体

import xlwt
workbook = xlwt.Workbook(encoding='utf-8')

def get_style(i):
    style = xlwt.XFStyle()
    font = xlwt.Font()  # 创建字体
    font.colour_index = i
    style.font = font
    return style

sheet = workbook.add_sheet("memeda")
for i in range(0, 100):
    sheet.write(i, 0, "memeda", get_style(i))
workbook.save('memeda.xls')

相关文章

网友评论

      本文标题:xlrd

      本文链接:https://www.haomeiwen.com/subject/mechlktx.html