將txt文本轉換爲excel格式

將txt文本轉換爲excel格式,中間使用的列分割爲 tab 鍵

1、使用xlwt模塊

注:Excel 2003 一個工做錶行數限制65536,列數限制256html

須要模塊:xlwt

模塊安裝:xlwtpython

[root@baolin shell]#sudo pip install xlwt

腳本內容

腳本內容:shell

[root@baolin shell]# cat t2e.py 
#!/bin/env python
# -*- encoding: utf-8 -*-
#-------------------------------------------------------------------------------
# Purpose:     txt轉換成Excel
# Created:     2017-11-03
#-------------------------------------------------------------------------------
import os
import sys
import xlwt #須要的模塊

def txt2xls(filename,xlsname):  #文本轉換成xls的函數,filename 表示一個要被轉換的txt文本,xlsname 表示轉換後的文件名
    print 'converting xls ... '
    f = open(filename)   #打開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('\t'):#讀取出相應的內容寫到x
            item=i.strip().decode('utf8')
            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)

運行方式:bash

# 後綴xls會自動添加
[root@baolin shell]#python t2e.py txt文本 xls名稱

2、使用xlsxwriter模塊

注:當行數大於65535時,就須要使用Excel 2007 一個工做錶行數限制1048576,列數限制16384函數

須要模塊:xlsxwriter

模塊安裝:xlsxwriter.net

[root@baolin shell]#sudo pip install xlsxwriter

腳本內容

腳本內容:excel

#!/bin/env python
# -*- encoding: utf-8 -*-
import os
import sys
import xlsxwriter  # 當文檔內容大於 65535 時使用 xlsxwriter 模塊

def txt2xls(filename,xlsname):  #文本轉換成xls的函數,filename 表示一個要被轉換的txt文本,xlsname 表示轉換後的文件名
    print('converting xls ... ')
    f = open(filename)   #打開txt文本進行讀取
    x = 0                #在excel開始寫的位置(y)
    y = 0                #在excel開始寫的位置(x)
    xls=xlsxwriter.Workbook(xlsname+'.xlsx')                 # 建立xlsx文件

    sheet = xls.add_worksheet()     # 建立一個新的表單,默認名稱爲 「sheet1」,輸入字符參數可指定名稱

    while True:  #循環,讀取文本里面的全部內容
        line = f.readline() #一行一行讀取
        if not line:  #若是沒有內容,則退出循環
            break
        for i in line.split('\t'):#讀取出相應的內容寫到x
            item=i.strip().decode('utf8')
            sheet.write(x,y,item)
            y += 1 #另起一列
        x += 1 #另起一行
        y = 0  #初始成第一列
    f.close()
    xls.close()

if __name__ == "__main__":
    filename = sys.argv[1]
    xlsname  = sys.argv[2]
    txt2xls(filename,xlsname)

運行方式:code

# 後綴xls會自動添加
[root@baolin shell]#python t2e.py txt文本 xls名稱

將一個目錄下的全部文件都轉換爲excel文件

[root@baolin shell]#cat batch_to_exl.sh 
#!/bin/bash
pth="/usr/local/data_dir/data_txt/"           # 將/usr/local/data_dir/data_txt/ 目錄下的全部的文件循環

mkdir /usr/local/data_dir/data_xls/ -p

for n in `ls $pth`
do
  # 執行腳本拼接的路徑 執行腳本,將結果放在 其餘目錄(須要建立)
  python /home/baolin/shell/t2e.py ${pth}${n} /usr/local/data_dir/data_xls/${n}
done

內容參考:htm

http://www.cnblogs.com/zhoujinyi/archive/2013/05/07/3064785.html
http://blog.csdn.net/gumengkai/article/details/52800257
https://zhidao.baidu.com/question/565518792570332764.html
https://www.cnblogs.com/ontheway703/p/5264517.html
相關文章
相關標籤/搜索