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))