您的位置:首页 > 编程语言 > Python开发

【python txt2xls】个人开发的python文本转表格工具txt2xls

2015-09-18 15:03 711 查看

简介

开发了一个将指定格式的文本转换成xls表格的程序,需要安装xlwt。

说明

支持多个sheet。

使用方法

python txt2xls.py student.txt student.xls


txt样例

tablename	计科0801班
start
title	姓名	年龄	性别
notitle	张三	22	男
notitle	韩梅梅	21	女
end
br
tablename	计科0802班
start
title	姓名	年龄	性别
notitle	李四	22	男
notitle	Lily	21	女
end
br
tablename	计科0803班
start
title	姓名	年龄	性别
notitle	Jim	22	男
notitle	Lucy	21	女
end


txt格式说明

每行以\t分割。

第一列表示标志符,标志该行的意义。

各个标志符具体含义如下:

br 表示提示程序换行

tablename 表示表格名称,可用于生成sheet

start 表示表格开始

title 表示表格的标题栏

notitle 表示表格的非标题栏

end 表示表格结束

转换效果



转换代码

#!/usr/bin/env python
#coding:utf8

import sys
import xlwt

if len(sys.argv) != 3:
print "usage:"
print "\tpython %s ORI_FILEPATH RESULT_FILEPATH" % sys.argv[0]
exit(-1)

ori_file = sys.argv[1]
result_file = sys.argv[2]

wbk = xlwt.Workbook(encoding = "utf8")

sheet_list = []
sheet_index = -1
cur_row = 0

for line in open(ori_file):
splits = line.strip().split("\t")
if len(splits) == 0:
continue
mark = splits[0]
if mark == "start":
continue
elif mark == "end":
continue
elif mark == "br":
cur_row += 1
elif mark == "tablename":
sheet_list.append( wbk.add_sheet(splits[1]) )
sheet_index += 1
cur_row = 0
elif mark == "title" or mark == "notitle":
for col in range(len(splits[1:])):
sheet_list[sheet_index].write(cur_row, col, splits[1:][col])
cur_row += 1
else:
continue

wbk.save(result_file)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: