Python中Excel读取写入(xlrd与xlwt)的使用

😂 这篇文章最后更新于1224天前,您需要注意相关的内容是否还可用。
目录导航
  • xlrd读取Excel(仅支持xls格式)
  • xlwt写出Excel
  • xlrd读取Excel(仅支持xls格式)

    import xlrd
    
    data=xlrd.open_workbook("excel.xls")
    # # 判断0工作表是否被加载
    # print(data.sheet_loaded(0))
    # # 卸载工作表后再输出为false表示未加载
    # data.unload_sheet(0)
    # print(data.sheet_loaded(0))
    # 打印所有sheet 与 索引为1的sheet
    print(data.sheets())
    print(data.sheets()[0])
    # 根据索引名字获取 Sheet  0:<Sheet1>
    print(data.sheet_by_index(0))
    print(data.sheet_by_name("Sheet1"))
    # 获取所有工作表名字 ['Sheet1', 'Sheet2', 'Sheet3']
    print(data.sheet_names())
    # 获取sheets总数 3
    print(data.nsheets)
    
    # 操作行列
    sheet=data.sheet_by_index(0)
    # 获取总行数
    print(sheet.nrows)
    # 获取索引行内容
    print(sheet.row(0))
    # 获取行类型 array('B', [1, 0, 0, 0]) 数字表示类型
    print(sheet.row_types(0))
    # 第一行第一个单元格
    print(sheet.row(0)[0])
    print(sheet.row(0)[0].value)
    # 纯获取行直
    print(sheet.row_values(0))
    # 行长度
    print(sheet.row_len(0))
    
    # 列数
    print(sheet.ncols)
    print(sheet.col(0))
    # 获取指定单元格值
    print(sheet.col(0)[0].value)
    # 列所有值 类型
    print(sheet.col_values(0))
    print(sheet.col_types(0))
    
    # 操作单元格 坐标行列
    print(sheet.cell(0,0))
    print(sheet.cell(0,0).value)
    print(sheet.cell_value(0,0))
    # 查看单元格类型 ctype亦可
    print(sheet.cell_type(0,0))
    print(sheet.cell(0,0).ctype)

    xlwt写出Excel

    import xlwt
    
    # excel写入(xlwt) 创建工作簿
    # 初始化样式
    titlestyle = xlwt.XFStyle()
    titlefont = xlwt.Font()
    titlefont.name = "宋体"
    titlefont.bold = True
    titlefont.height = 11 * 20  # 11字号 20单位
    titlefont.colour_index = 0x08
    titlestyle.font = titlefont
    
    # 对齐方式
    cellalign = xlwt.Alignment()
    # 水平居中
    cellalign.horz = 0x02
    # 垂直居中
    cellalign.vert = 0x01
    titlestyle.alignment = cellalign
    
    # 边框
    borders = xlwt.Borders()
    borders.right = xlwt.Borders.DASHED
    borders.bottom = xlwt.Borders.DASHED
    titlestyle.borders = borders
    wb = xlwt.Workbook()
    
    # 背景颜色样式
    title1style = xlwt.XFStyle()
    # 颜色模式
    bgcolor = xlwt.Pattern()
    bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
    # 设置颜色
    bgcolor.pattern_fore_colour = 22
    title1style.pattern = bgcolor
    
    # 创建sheet
    ws = wb.add_sheet("2020年度")
    # 填充数据 参数:r1 r2 c1 c2 文字,即行列范围合并并填充文字
    ws.write_merge(0, 1, 0, 5, "2020年报表", titlestyle)
    # 写入数据
    data = (("title1", "title2", "title3", "title4", "title5"), ("1", "2", "3", "4", "5"), ("5", "4", "3", "2", "1"))
    # enumerate循环返回索引
    for i, item in enumerate(data):
        for j, val in enumerate(item):
            if j == 0:
                ws.write(i + 2, j, val, title1style)
            else:
                # 跳过前两行
                ws.write(i + 2, j, val)
    
    # 插入第二个sheet 添加图片
    wsimg = wb.add_sheet("img")
    # 插入图片
    wsimg.insert_bitmap("2020.bmp", 0, 0)
    # 写入到当前目录
    wb.save("2020_BG.xls")