2016-07-11 15 views
1

xlsの値の書式を指定するには、何か助けが必要です。私はtxtファイルをxlsに変換しています。txtファイルをxlsファイルに変換する

以下は私の現在のコードです。私はtxtファイルを読んで、私はInt/Floatまたはstrとして値を入れる必要があります。 intは大丈夫ですが、浮動小数点の問題は解決できません。

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

として追加。あなたの例が実際にCut-for-StackOverflowフォームで動作することをテストしましたか? (MCVEのガイドライン(http://stackoverflow.com/help/mcveを参照) - 「完全」と「検証可能」は、イラストのために提供されたコードが実際に機能することを必要とします。 –

+0

Tks Charles、コードは私のプロジェクトの正しい字下げになっていますが、スタック上では間違っています...私はMCVEをチックにします –

答えて

0

まず、あなたの助けが私の問題を解決しました。

数値は数値(値、アカウント、索引..)はワークシートの数値として正しく追加され、その他の値は(日付、説明...)今、インデントと、あなたは `is_float`機能*後*その` return`の内側にあなたのコードの本体を持っている - 文字列ここでの問題はあります

FinalCode

関連する問題