转自互联网,仅作为个人笔记,避免重复编写。
可以使用python的xlwt或openpyxl模块,后者支持大于65535行的文件。
xlwt和openpyxl模块的下载地址:https://pypi.org/
xlwt模块:
#!/bin/env python
# -*- encoding: utf-8 -*-
#-------------------------------------------------------------------------------
# purpose: txt转换成xls
# usage: python txt2xls.py filename xlsname
#-------------------------------------------------------------------------------
import datetime
import time
import os
import sys
import xlwt #需要的模块
def txt2xls(filename,xlsname): #文本转换成xls的函数,filename 表示一个要被转换的txt文本,xlsname 表示转换后的文件名
if os.path.exists(filename):
print('Converting xls ... ')
f = open(filename, 'r', encoding='UTF-8') #打开txt文本进行读取
x = 0 #在excel开始写的位置(y)
y = 0 #在excel开始写的位置(x)
xls=xlwt.Workbook()
sheet = xls.add_sheet('sheet1',cell_overwrite_ok=True) #生成excel的方法,声明excel
while True: #循环,读取文本里面的所有内容
line = f.readline() #一行一行读取
if not line: #如果没有内容,则退出循环
break
for i in line.split(','):#读取出相应的内容写到x,字段分隔符需要按照实际指定
item=i.strip()
sheet.write(x,y,item)
y += 1 #另起一列
x += 1 #另起一行
y = 0 #初始成第一列
f.close()
xls.save(xlsname+'.xls') #保存
if __name__ == "__main__":
filename = sys.argv[1]
xlsname = sys.argv[2]
txt2xls(filename,xlsname)
print('Our task has been completed!')
openpyxl模块:
#!/bin/env python
# -*- encoding: utf-8 -*-
#-------------------------------------------------------------------------------
# purpose: txt转换成xlsx
# usage: python txt2xlsx.py filename xlsxname
#-------------------------------------------------------------------------------
import datetime
import time
import os
import sys
#import xlwt
import openpyxl #需要的模块
def txt2xls(filename,xlsxname): #文本转换成xls的函数,filename 表示一个要被转换的txt文本,xlsname 表示转换后的文件名
if os.path.exists(filename):
print('Converting xlsx ... ')
f = open(filename, 'r', encoding='UTF-8') #打开txt文本进行读取
x = 1 #在excel开始写的位置(y)
y = 1 #在excel开始写的位置(x)
xls=openpyxl.Workbook()
sheet = xls.get_sheet_by_name('Sheet')
while True: #循环,读取文本里面的所有内容
line = f.readline() #一行一行读取
if not line: #如果没有内容,则退出循环
break
for i in line.split(','):#读取出相应的内容写到x,需要根据实际情况修改源文件分隔符
item=i.strip()
sheet.cell(row=x,column=y,value=item)
y += 1 #另起一列
x += 1 #另起一行
y = 1 #初始成第一列
f.close()
xls.save(xlsname+'.xlsx') #保存
if __name__ == "__main__":
filename = sys.argv[1]
xlsname = sys.argv[2]
txt2xls(filename,xlsname)
print('Our task has been completed!')