简介
开发了一个将指定格式的文本转换成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)