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
    
  • 相关阅读:
    Maximum Depth of Binary Tree
    Single Number
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Remove Element
    Remove Duplicates from Sorted List
    Add Two Numbers
    编译视频直播点播平台EasyDSS数据排序使用Go 语言 slice 类型排序的实现介绍
    RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查
    【解决方案】5G时代RTMP推流服务器/互联网直播点播平台EasyDSS实现360°全景摄像机VR直播
  • 原文地址:https://www.cnblogs.com/baolin2200/p/7793742.html
Copyright © 2011-2022 走看看