Python Excel文件的读写操作(xlwt xlrd xlsxwriter)

Python语法简洁清晰,作为工作中常用的开发语言还是很强大的(废话)。

python关于Excel的操作提供了xlwt和xlrd两个的包作为针对Excel通用操作的支持,跨平台(Mac、Windows均可)。

xlrdxlrd目前支持读写xlsx(2007版)与xls(2003版),简单的说明如下:

import xlrd

def open_excel(file='test.xls'):
    try:
        data = xlrd.open_workbook(file)
        # 通过索引获取工作表
        sheet1 = data.sheets()[0]
        # 通过名称获取工作表
        sheet1 = data.sheet_by_name(u'sheet1')
        # 获取table对象,根据table进行该工作表相关数据的读取
        # 获取行列
        row = sheet1.nrows
        col = sheet1.ncols

        # 获取单元格的值
        cell_value = sheet1.cell(0, 1).value

        # 行列表数据
        for i in range(row):
            print sheet1.row_values(i)

        # 数据写入
        # 单元格类型 0 empty,1 string, 2 number, 3 datetime, 4 boolean, 5 error
        # xf 扩展格式化
        xf = 0
        row_num = 1
        col_num = 1
        cell_type = 1
        sheet1.put_cell(row_num, col_num, cell_type, u'hello word', xf)
        return data
    except Exception, e:
        print str(e)

 xlwt则支持写出2003版xls的包,具体操作如示例如下:

import xlwt

def write_excel2():
    # 设置通用样式变量
    style_header = xlwt.easyxf(u'font: name 微软雅黑, color-index black, bold on,height 240')
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet(u'sheet1')
    # 设置第一列到单元格的宽度
    worksheet.col(0).width = 256 * 35
    # 设置该工作表单元格的宽度
    c = 1
    while c < 300:
        worksheet.col(c).width = 256 * 20
        c += 1
    col = 0
    # 循环设置表头值
    header = [u'姓名', u'性别', u'年龄']
    for h in header:
        worksheet.write(0, col, h, style_header)
        col += 1
    # 保存到本地目录,mac上后缀xlsx会报错,xls正常。
    workbook.save('test.xls')

另外:xlsxwriter支持2007版的写出

 

各位大神有需补充或更正还望指教。😁

 

posted @ 2018-01-18 11:12  乐-张蒙  阅读(5755)  评论(0编辑  收藏  举报