【问题标题】:Automate conversion txt to xls自动将txt转换为xls
【发布时间】:2013-04-29 08:14:21
【问题描述】:

我正在寻找最便宜的方法,将文件夹结构中的所有文本文件(制表符分隔)自动转换为 .xls 格式,并保持列和行的形状不变。

编辑:成功了:

import xlwt
import xlrd
f = open('Text.txt', 'r+')
row_list = []
for row in f:
    row_list.append(row.split())
column_list = zip(*row_list)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
i = 0 
for column in column_list:
    for item in range(len(column)):
        worksheet.write(item, i, column[item])
    workbook.save('Excel.xls')
    i+=1

【问题讨论】:

    标签: python excel text


    【解决方案1】:

    最简单的方法是将所有文件从 *.txt 重命名为 *.xls。 Excel 会自动对数据进行分区,保持原来的形状。

    我不会为你编写代码,但这是一个良好的开端:

    【讨论】:

    • 谢谢,但我希望通过 xlrd 读取文件,如果不在 Excel 中打开文件并保存它,只需重命名它就不会将文件识别为 Excel 文件。
    • @lhcgeneva 你把我弄糊涂了......你提到试图避免使用xlrd 但无论如何都会使用它......所以为什么不使用xlwt 来转换文本文件?
    • @Jon Clements 我认为使用 xlwt 会很笨重,这就是为什么我想避免它来转换文件的原因。有没有一种简单的方法可以用 xlwt 做到这一点?
    • @lhcgeneva 使用csv 模块从文本文件中获取您的行,然后使用xlwt 文档中的示例代码来创建您的 xls...(并使用 Gareth 的上述建议进行步行你的文件)
    【解决方案2】:

    这个怎么样?

    import xlwt
    textfile = "C:/Users/your_path_here/Desktop/test.txt"
    
    def is_number(s):
        try:
            float(s)
            return True
        except ValueError:
            return False        
    
    
    style = xlwt.XFStyle()
    style.num_format_str = '#,###0.00'  
    
    #for textfile in textfiles:
    f = open(textfile, 'r+')
    row_list = []
    for row in f:
        row_list.append(row.split('|'))
    column_list = zip(*row_list)
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('Sheet1')
    i = 0
    for column in column_list:
        for item in range(len(column)):
            value = column[item].strip()
            if is_number(value):
                worksheet.write(item, i, float(value), style=style)
            else:
                worksheet.write(item, i, value)
        i+=1
    workbook.save(textfile.replace('.txt', '.xls'))
    

    对不起,一定是贴错了……

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      相关资源
      最近更新 更多