python 如何将txt与excel 进行相互转换(.xls、.xlsx)

python 如何将txt与excel 进行相互转换(.xls、.xlsx)

Python处理03版xls的excel 需要用到xlrd、xlwt来读写,而处理07版xlsx的excel需要用到openpyxl,首先读取txt内容,写入xlsx中,然后在读取xlsx中的内容。

python 将txt文件转换为excel文件(.xls;.xlsx)

# -*- encoding: utf-8 -*-
import xlwt #需要的模块
 
def txt_xls(filename,xlsname):
    """
    :文本转换成xls的函数
    :param filename txt文本文件名称、
    :param xlsname 表示转换后的excel文件名
    """
    try:
        f = open(filename) 
        xls=xlwt.Workbook()
        #生成excel的方法,声明excel
        sheet = xls.add_sheet('sheet1',cell_overwrite_ok=True) 
        x = 0 
        while True:
            #按行循环,读取文本文件
            line = f.readline() 
            if not line: 
                break  #如果没有内容,则退出循环
            for i in range(len(line.split('\t'))):
                item=line.split('\t')[i]
                sheet.write(x,i,item) #x单元格经度,i 单元格纬度
            x += 1 #excel另起一行
        f.close()
        xls.save(xlsname) #保存xls文件
    except:
        raise
if __name__ == "__main__" :
    filename = "G:/test.txt"
    xlsname  = "G:/test.xls"
    txt_xls(filename,xlsname)

python excel文件转换为txt文件(.xls;.xlsx)

#-*- coding:UTF-8 -*-
import xlrd
def strs(row):
    """
    :返回一行数据
    """
    try:
        values = "";
        for i in range(len(row)):
            if i == len(row) - 1:
                values = values + str(row[i])
            else:
                #使用“,”逗号作为分隔符
                values = values + str(row[i]) + "," 
        return values
    except:
        raise
def xls_txt(xls_name,txt_name):
    """
    :excel文件转换为txt文件
    :param xls_name excel 文件名称
    :param txt_name txt   文件名称
    """
    try:
        data = xlrd.open_workbook(xls_name)
        sqlfile = open(txt_name, "a") 
        table = data.sheets()[0] # 表头
        nrows = table.nrows  # 行数
        #如果不需跳过表头,则将下一行中1改为0
        for ronum in range(1, nrows):
            row = table.row_values(ronum)
            values = strs(row) # 条用函数,将行数据拼接成字符串
            sqlfile.writelines(values) #将字符串写入新文件
        sqlfile.close() # 关闭写入的文件
    except:
        pass
if __name__ == '__main__':
    xls_name = 'G:/test.xls'
    txt_name = 'G:/test.txt'
    xls_txt(xls_name,txt_name)

 

Python读取txt内容写入xlsx格式的excel中

# -*- coding: utf-8 -*-
"""
QQ2737499951
"""

import openpyxl
import codecs
from openpyxl.utils import get_column_letter

def txt_to_xlsx(filename,outfile):

    fr = codecs.open(filename,'r')
    wb = openpyxl.Workbook()
    ws = wb.active
    ws = wb.create_sheet()
    ws.title = 'Sheet1'
    row = 0
    for line in fr:
        row +=1
        line = line.strip()
        line = line.split('\t')
        col = 0
        for j in range(len(line)):
            col +=1
            #print (line[j])
            ws.cell(column = col,row = row,value = line[j].format(get_column_letter(col)))
    wb.save(outfile)
#读取xlsx内容    
def read_xlsx(filename):
    #载入文件
    wb = openpyxl.load_workbook(filename)
    #获取Sheet1工作表
    ws = wb.get_sheet_by_name('Sheet1')
    #按行读取
    for row in ws.rows:
        for cell in row:
            print (cell.value)
    #按列读
    for col in ws.columns:
        for cell in col:
            print (cell.value)

if __name__=='__main__':
    inputfileTxt = 'test.txt'
    outfileExcel = 'text_result.xlsx'
    txt_to_xlsx(inputfileTxt,outfileExcel)
    read_xlsx(outfileExcel)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值