Python Show-Me-the-Code 第 0014,0015,0016 题 写Excel文件


第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示:

{
    "1":["张三",150,120,100],
    "2":["李四",90,99,95],
    "3":["王五",60,66,68]
}

请将上述内容写到 student.xls 文件中,如下图所示:

student.xls

阅读资料 腾讯游戏开发 XML 和 Excel 内容相互转换

第 0015 题: 纯文本文件 city.txt为城市信息, 里面的内容(包括花括号)如下所示:

{
    "1" : "上海",
    "2" : "北京",
    "3" : "成都"
}

请将上述内容写到 city.xls 文件中,如下图所示:

city.xls

第 0016 题:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPiC0v87Esb7OxLz+IG51bWJlcnMudHh0LCDA78PmtcTE2sjdo6iw/MCot73AqLrFo6nI58/Cy/nKvqO6PC9wPg0KPHByZSBjbGFzcz0="brush:java;"> [ [1, 82, 65535], [20, 90, 13], [26, 809, 1024] ]

请将上述内容写到 numbers.xls 文件中,如下图所示:

numbers.xls


思路:

嗯这三题看起来都是差不多的,都属于使用Python来把数据写入Excel文档的问题,解决的方法也是差不多,所以就写在一起了。Python拥有强大的标准库,但是这个标准库好像并没有用于处理excel文件的库(什么鬼)。但肯定有强大的第三方库可以的,对不?

找了一下,发现有如下三个库:xlrd,xlwt和xlutils。其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改。
看样子好像xlutils是很强大的,不过这里我们用xlwt就可以解决问题啦。

数据是存在文件中的,所以首先要切换到文件所在目录,然后打开文件,读取出来后解析成json格式,再按照要求写进表格中就ok了。

步骤:

安装xlwt库(如果没有): sudo pip install xlwt
切换目录,打开文件
读取文件内容
使用json解析
写入xls文件


代码:

0014.写excel文件1.py

#!/usr/bin/env python
#coding: utf-8
import os
import json
import xlwt

# 存放文件的目录
filepath = '/home/bill/Desktop'

def run():
    os.chdir(filepath)
    # 读取文件内容
    with open('student.txt') as f:
        content = f.read()
    # 转为json
    d = json.loads(content)
    file = xlwt.Workbook()
    # 添加sheet
    table = file.add_sheet('test')
    for row, i in enumerate(list(d)):
        table.write(row, 0, i)
        for col, j in enumerate(d[i]):
            table.write(row, col+1, j)
    file.save('student.xls')

if __name__ =="__main__":
    run()

0015.写excel文件2.py

#!/usr/bin/env python
#coding: utf-8
import os
import json
import xlwt

# 存放文件的目录
filepath = '/home/bill/Desktop'

def run():
    os.chdir(filepath)
    # 读取文件内容
    with open('city.txt') as f:
        content = f.read()
    # 转为json
    d = json.loads(content)
    file = xlwt.Workbook()
    # 添加sheet
    table = file.add_sheet('test')
    for row, i in enumerate(list(d)):
        table.write(row, 0, i)
        table.write(row, 1, d[i])
    file.save('city.xls')

if __name__ =="__main__":
    run()

0016.写excel文件3.py

#!/usr/bin/env python
#coding: utf-8
import os
import json
import xlwt

# 存放文件的目录
filepath = '/home/bill/Desktop'

def run():
    os.chdir(filepath)
    # 读取文件内容
    with open('numbers.txt') as f:
        content = f.read()
    # 转为json
    d = json.loads(content)
    file = xlwt.Workbook()
    # 添加sheet
    table = file.add_sheet('test')
    for row, i in enumerate(d):
        for col, j in enumerate(i):
            table.write(row, col, j)
    file.save('numbers.xls')

if __name__ =="__main__":
    run()

运行后生成的表格:

这里写图片描述

student.xls:
这里写图片描述

city.xls:
这里写图片描述

numbers.xls:
这里写图片描述

评论关闭