Python3.x操作Excel(1)

import  xlwt

"""
enumerate的用法
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>>list(enumerate(seasons))                 # 小标从 0 开始
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>>list(enumerate(seasons, start=1))       # 小标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
"""
def CreatExcel(filename):
    """创建Excel表格"""
    #创建workbook即新建excel文件/工作博
    filebook=xlwt.Workbook(encoding='utf-8')
    #创建工作工作表,如果想创建多个工作表,直接在后面
    worksheet=filebook.add_sheet(filename)
    #返回创建的表格名和路径
    infoDic={'key1':filebook,'key2':worksheet,'key3':filename}
    #返回工作簿和工作表的字典类型值
    return infoDic

def addDataExcel(infodic):
    """在表格中添加数据"""
    #对传入的字典类型的数据进行解析
    filebook=infodic.get('key1')#获得工作簿
    worksheet=infodic.get('key2')#获得表
    filename=infodic.get('key3')#文件名
    # 字典数据
    #嵌套:内部嵌套列表型
    data = {
        "1": ["张三", 150, 120, 100],
        "2": ["wang", 90, 99, 95],
        "3": ["wu", 60, 66, 68]
        }
    ldata = []#列表数据
    # for循环指定取出key值存入num中
    num = [a for a in data]
    # 字典数据取出后无序,需要先排序
    num.sort()
    # for循环将data字典中的键和值分批的保存在ldata中
    #ldata=[["张三", 150, 120, 100] ["wang", 90, 99, 95] ["wu", 60, 66, 68]]
    for x in num:
        t = [int(x)]
        #x表示键值,根据键值取出字典中相应的值
        for a in data[x]:
            #a中存放的是data数据中x键值对应的数据
            t.append(a)
        ldata.append(t)

    # 将数据写入文件,i是enumerate()函数返回的序号数,表示行
    #第一次循坏:第一个for(1,["张三", 150, 120, 100])  i=1(row),p=["张三", 150, 120, 100]
    #           第二个for(1,"张三")  j=1(col),q="张三"
    #                   (2,"150")   j=2(col),
    #                   (3,"120")   j=3(col),
    #                   (4,"100")   j=4(col),
    #第二次循坏:
    #第三次循环:
    for i, p in enumerate(ldata):
        #j是enumerate()函数返回的序号数,表示列
        for j, q in enumerate(p):
            worksheet.write(i, j, q)#row行,col列,data数据
        filebook.save(filename)
    return "OK"

if __name__=='__main__':
    #注意,如果后缀类型名为xlsx可能会出现打不开的现象。需要修正为xls
    #主要是因为xlwt只支持Excel 2003,xlsx
    excelDic=CreatExcel("myExcel.xls")
    mark=addDataExcel(excelDic)
    print(mark)

猜你喜欢

转载自blog.csdn.net/bao_120973681/article/details/83715936