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


     转:https://www.cnblogs.com/ultimateWorld/p/8309197.html

    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版的写出

    import xlsxwriter   #导入模块
     
    workbook = xlsxwriter.Workbook('new_excel.xlsx')     #新建excel表
     
    worksheet = workbook.add_worksheet('sheet1')       #新建sheet(sheet的名称为"sheet1")
     
    headings = ['Number','testA','testB']     #设置表头
     
    data = [
        ['2017-9-1','2017-9-2','2017-9-3','2017-9-4','2017-9-5','2017-9-6'],
        [10,40,50,20,10,50],
        [30,60,70,50,40,30],
    ]                                                              #自己造的数据
     
     
     
    worksheet.write_row('A1',headings)
     
    worksheet.write_column('A2',data[0])
    worksheet.write_column('B2',data[1])
    worksheet.write_column('C2',data[2])                   #将数据插入到表格中
     
     
    workbook.close()          #将excel文件保存关闭,如果没有这一行运行代码会报错
    

      

  • 相关阅读:
    牛客网 剑指Offer JZ16 合并两个排序的链表
    牛客网 剑指Offer JZ15 反转链表
    牛客网 剑指Offer JZ14 链表中倒数最后k个结点
    牛客网 剑指Offer JZ12 数值的整数次方 经典快速幂
    牛客网 剑指offer-JZ10 矩形覆盖
    牛客网 剑指offer-JZ9 跳台阶扩展问题
    牛客网 剑指offer-JZ8 跳台阶
    牛客网 剑指offer-JZ7 斐波那契数列
    牛客网 剑指offer-JZ6 旋转数组的最小数字
    codility_ BinaryGap
  • 原文地址:https://www.cnblogs.com/zwp-627/p/11740636.html
Copyright © 2020-2023  润新知