python简单读取excel文件

python简单读取excel文件

众所周知,python拥有强大的文本编辑能力,有时我们需要将其他格式的文本通过excel的方式呈现,以下我们来简单的认识下如何通过python将其他文本格式的内容转化为excel展示。
这里我们需要用到三个模块:xlrd xlwt xlutis

-http://pypi.python.org/pypi/xlrd
-http://pypi.python.org/pypi/xlwt
-http://pypi.python.org/pypi/xlutils

xlrd

python 一般用xlrd来读取excel文件,需要注意用xlrd读取excel是不能对其进行操作的。现在我有一个json结构需要将其中的一些字段放到excel文件中展示,如下:

    {
    "id": "01",
    "name": "name1",
    "data": [
        {
            "id": "001",
            "start": 884000,
            "end": 886100
        },
        {
            "id": "002",
            "start": 1061199,
            "end": 1064500
        },
        {
            "id": "003",
            "start": 420399,
            "end": 422100
        }
    ]
}

将其中data中的数据存与excel表中。
当前场景中,假设我们已经新建了一个data.xls的表(注意当前库支持97-03版本的excel)
给出代码:

data = xlrd.open_workbook('data.xls')
table = data.sheets()[0] #excel中的第一张表
nrows = table.nrows #行数
ncols = table.ncols #列数
with open('test.json', 'r') as f:
    data = f.read()
json_data = json.loads(data)
index = 1
for i in json_data.get('data'):
    table.put_cell(index, 1, 1, i.get('id'), xf)
    index = index + 1

如上操作自后发现数据并没有写入excel表中,原因上面已经说明

xlwt

在写入excel之前,初始化workbook对象,然后添加一个workbook对象
给出代码

import xlwt
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet', cell_overwrite_ok=True)
sheet.write(0,0,'test')
sheet.write(0,0,'test1')

xlutils

xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。即在xlrd.Book和xlwt.Workbook之间建立了一个管道,如图

给出代码

data = xlrd.open_workbook('data.xls')
wb = copy(data)
ws = wb.get_sheet(0)
with open('test.json', 'r') as f:
    data = f.read()
json_data = json.loads(data)
index = 1
for i in json_data.get('data'):
    ws.write(index, 1,  i.get('id'))
    ws.write(index, 2, gettime(i.get('start')))
    ws.write(index, 3, i.get('start'))   
    ws.write(index, 4, gettime(i.get('end')))
    ws.write(index, 5, i.get('end')) 
    index = index + 1
wb.save('result.xls')

另说

将毫秒转为 时:分:秒 格式

def gettime(time):
    m, s = divmod(time/1000, 60)
    h, m = divmod(m, 60)
    return ("%02d:%02d:%02d" % (h, m, s))

参考

http://blog.csdn.net/tianzhu123/article/details/7225809

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值