在统计数据的时候,发现需要写个脚本去操作excel,于是找到了python,python大法好啊,哈哈,下面记录下过程。
python操作excel
我最先google了一下,发现有一个库xlrd
可以操作excel,但是,这个库有个局限性,就是最多只能操作256列,对于超过256列的表格就不能处理了,于是发现了一个新的库openpyxl
,下面我将讲述一个这个库的用法!
安装openpyxl
库
1
| $ sudo pip install openpyxl
|
将文本数据转入到excel中
说一下的我的需求吧:
在mainon.tem
文件中有如下数据:
最终excel中展示的数据如下:
为了完成我的目标,需要下面脚本处理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| import datetime import time import os import sys from openpyxl import Workbook
def txt2xls(filename,xlsname): print 'converting xls ... ' f = open(filename) y = 2 wb = Workbook() ws3 = wb.create_sheet(title="Sheet Data") ws3.cell(column=1, row=1, value="时间(s)") ws3.cell(column=1, row=2, value="透明大页容量") ws3.cell(column=1, row=3, value="memory free") while True: line_time = f.readline() if not line_time: break line_memoryfree = f.readline() line_hugepage = f.readline() ws3.cell(column=y, row=1, value="%s" % line_time) ws3.cell(column=y, row=2, value="%s" % line_memoryfree) ws3.cell(column=y, row=3, value="%s" % line_hugepage) y = y + 1 f.close() wb.save(filename = xlsname + ".xlsx") if __name__ == "__main__": filename = sys.argv[1] xlsname = sys.argv[2] txt2xls(filename,xlsname)
|
对于以上代码,需要说明的步骤是:
- 创建工作簿
wb = Workbook()
- 创建Sheet
ws3 = wb.create_sheet(title="Sheet Data")
- 在sheet指定位置操作数据
ws3.cell(column=1, row=1, value="时间(s)")
- 保存工作簿
wb.save(filename = xlsname + ".xlsx")
哈哈,就这样提高了效率!
参考资料:
- http://openpyxl.readthedocs.org/