Python菜鸟之路: 封装通用excel操作

1.python用于excel操作的就是xlrd,xlwt两个模块,分别是负责读/写
2.封装一个excel操作的类,支持读/写操作,定义数据格式,方便读/写

# -*- coding: utf-8 -*-
'this is xls util'

import xlrd
import xlwt

class xlsUtil:
    def read(self, path):
        '''
        :param path: string 文件路径 
        '''
        workbook = xlrd.open_workbook(path)
        data_sheet = workbook.sheets()[0]
        row_num = data_sheet.nrows
        col_num = data_sheet.ncols
        data = []
        for i in range(row_num):
            row_data = []
            for j in range(col_num):
                if(i == 0):
                    continue
                row_data.append(data_sheet.cell_value(i, j))
            data.append(row_data)
        print(data)
        return data

    def write(self, data, header, out_path):
        '''
        :param data: array 表格数据
        :param header: array 表头数据
        :param out_path: string 输出路径 
        '''
        wbk = xlwt.Workbook()
        sheet = wbk.add_sheet('Sheet1', cell_overwrite_ok=True)
        for i in range(len(header)):
            sheet.write(0, i, header[i])
        for row in range(len(data)):
            for col in range(len(data[row])):
                sheet.write(row+1, col, data[row][col])
        print(out_path)        
        wbk.save(out_path)

# test read and write
if __name__ == '__main__':
    xls_util = xlsUtil()
    xls_util.read('/Users/kelin/Documents/library.xlsx')
    xls_util.write([[1.0, '海底世界', '1.mp4', '1.png', 'animal:动物,coral:珊瑚,crab:蟹,dolphin:海豚,jellyfish:水母,near:靠近,ocean:海洋,plant:植物,soft:软的,tail:尾巴', '神秘的海底世界,色彩斑斓,有好多好多的动物,海龟、海豚、海豹、水母…… 鲸是怎么跳得那么高的呢,一起去看看吧~', '免费'], [2.0, '沙滩上的一天', '2.mp4', '2.png', 'brown:棕色的,cute:可爱,desk:书桌,great:美好的,late:晚的,seashell:贝壳,sky:天空,put:放,small:小的,star:星星', '沙滩,阳光,贝壳。我们会在沙滩上看到些什么呢?这一天的旅行是怎么度过呢?让我们一起度过这美好的一天吧。', '免费'], [
                   3.0, '沙滩,我来了!', '3.mp4', '3.png', 'beach:海滩,sea:海,shorts:短裤,summertime:夏日,swimsuit:泳衣,wave:波浪,wear:穿,sunscreen:防晒霜,tank top:背心,sunglasses:太阳眼镜', '炎炎夏日,最好的去处当然是沙滩啦。为了我们的沙滩旅行,我们需要准备些什么呢?在沙滩上,我们又会做些什么游戏呢?', '会员'], [4.0, '在度假中', '4.mp4', '4.png', 'beach:海滩,having a picnic:吃野餐,hungry:饿的,sand:沙子,sea:海,looking at:看着,sitting on:坐在…上,looking for:寻找着,together:一起,yard:院子', '度假时间到了,让我们一去去逛逛,沙滩,花园,大海,让我们一起去看看我们小伙伴的度假时光吧。', '会员']],
                   ['编号', '名称', '视频文件', '封面文件', '单词', '简介', '权限'],'/Users/kelin/Documents/test_new2.xlsx')

read:

给定文件路径path,通过xlrd.open_workbook打开工作簿
拿到对应的sheets,nrows获取可用行,ncols获取可用列
循环遍历后append到二维数组输出

write :

data:二维数组数据
hader:表头,会输出表格到第一行
out_path:输出路径
通过Workbook.add_sheet方法增加sheet,再循环遍历write到指定单元格
发布了58 篇原创文章 · 获赞 14 · 访问量 9344

猜你喜欢

转载自blog.csdn.net/lh_hebine/article/details/104273138