zoukankan      html  css  js  c++  java
  • 将txt文本转换为excel格式

    将txt文本转换为excel格式,中间使用的列分割为 tab 键

    一、使用xlwt模块

    注:Excel 2003 一个工作表行数限制65536,列数限制256

    需要模块:xlwt

    模块安装:xlwt

    [root@baolin shell]#sudo pip install xlwt
    

    脚本内容

    脚本内容:

    [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('	'):#读取出相应的内容写到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)
    

    运行方式:

    # 后缀xls会自动添加
    [root@baolin shell]#python t2e.py txt文本 xls名称
    

    二、使用xlsxwriter模块

    注:当行数大于65535时,就需要使用Excel 2007 一个工作表行数限制1048576,列数限制16384

    需要模块:xlsxwriter

    模块安装:xlsxwriter

    [root@baolin shell]#sudo pip install xlsxwriter
    

    脚本内容

    脚本内容:

    #!/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('	'):#读取出相应的内容写到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)
    

    运行方式:

    # 后缀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
    

    内容参考:

    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
    
  • 相关阅读:
    Java面向对象设计——购物车·
    查找

    栈和队列
    指针
    数组
    第四次博客——函数
    第三次博客作业
    第二次博客作业
    Java购物车大作业01
  • 原文地址:https://www.cnblogs.com/baolin2200/p/7793742.html
Copyright © 2011-2022 走看看