2016-07-11 6 views
1

Мне нужна помощь при указании формата значений в xls. Я преобразовываю txt-файл в xls.Преобразование файла txt в файл xls

Ниже мой текущий код. Когда я читаю txt-файл, мне нужно поместить значения как Int/Float или str. Int хорошо, а также str, но я не могу решить проблему с поплавками.

366351.77 или -6000.00, например, все еще вставляются в виде str в листе.

Я не знаю, является ли проблема, когда я читаю содержимое файла txt, или если это когда я пытался преобразовать содержимое строки в txt в формат float.

import sys 
import openpyxl 

delimitador, caminho, destino = sys.argv[1], sys.argv[2], sys.argv[3] 
xls = openpyxl.Workbook() 
sheet = xls.active 
sheet.column_dimensions['A'] 
txt = open(caminho) 


def is_float(s): 
    result = False 
    if s.count(".") == 1: 
     if s.replace(".", "").isdigit(): 
      result = True 
    return result 


    i = 1 
    for linha in txt: 
     coluna = linha.split(delimitador) 
     ii = 1 
     for celula in coluna: 
      cell = sheet.cell(row=i, column=ii) 
      if is_float(celula): 
       #cell.value = float(celula.decode('latin-1').encode('utf-8')) 
       cell.value = 'float'    
      elif celula.isdigit(): 
       cell.value = int(celula.decode('latin-1').encode('utf-8')) 
      else: 
       cell.value = celula.decode('latin-1').encode('utf-8') 
      ii += 1 
     i += 1 
    xls.save(destino) 
    txt.close() 
+0

Там проблема здесь - прямо сейчас, с отступом, у вас есть тело кода внутри 'is_float' функции * после * его' return'. Вы проверили, что ваш пример действительно работает в форме вырезания для StackOverflow? (См. Рекомендации MCVE по адресу http://stackoverflow.com/help/mcve - «complete» и «поддающиеся проверке» оба требуют, чтобы код, предназначенный для иллюстрации, фактически функционировал). –

+0

Tks Charles, код в правильном отступе моего проекта, просто на стеке это неправильно ... я буду щекотать MCVE –

ответ

0

Прежде всего ТКС столько Nicarus, ваша помощь решить мою проблему.

Вот мой окончательный код, теперь значения как Number (Values, Accounts, Index ..) правильно добавляются как число в листе, а остальные значения как (Date, Description ...) добавлен в качестве строки

FinalCode

Смежные вопросы