2

INFORMIX 4GL プログラムに取り組んでいます。そのプログラムは、出力テキスト ファイルを生成します。これは、出力の例です。

Lot No|Purchaser name|Billing|Payment|Deposit|Balance|                
J1006|JAUHARI BIN HAMIDI|5285.05|4923.25|0.00|361.80|                 
J1007|LEE, CHIA-JUI AKA LEE, ANDREW J. R.|5366.15|5313.70|0.00|52.45| 
J1008|NAZRIN ANEEZA BINTI NAZARUDDIN|5669.55|5365.30|0.00|304.25|     
J1009|YAZID LUTFI BIN AHMAD LUTFI|3180.05|3022.30|0.00|157.75|  

このテキスト ファイルは手動で Excel ファイルに変換できますが、.txt ファイルを .xls ファイルに変換するために使用できるスクリプトはありますか?

こんにちは。Rami Helmy という名前のユーザーから提供されたスクリプトを使用して、Python でテキスト ファイルを Excel ファイルに変換できるようになりました。 '|' の それに加えて、そのスクリプトも1つのテキストファイルしか変換できません。テキストファイルの名前を指定せずにすべてのテキストファイルを変換します。したがって、このスクリプトを次のようにする方法を探しています。

  • エクセルファイルを1つだけ出力する
  • ユーザーから指定されたディレクトリからすべての .txt ファイルを変換します。
  • 出力エクセルのファイル名は、テキストファイルのファイル名から自動コピーされます。

私はpythonが初めてです。誰かが私の問題を解決するのを手伝ってくれることを願っています。ありがとう..

すべてのタスクを完了しましたが、いくつかの問題がありました..緑色のマークが付いた列はテキストファイルとしてフォーマットされているため、その列で計算を行うことはできません.その列は数値形式に変換する必要があります.それから、Excelを出力しますファイルには、次のような「四角」記号が含まれています。

ここに画像の説明を入力

次に、ファイルを変換するときに緑色のマークの列形式を数値として作成する方法は? そのような四角い記号がないことをどのように確認できますか? 助けてください、ありがとう...

あの変な四角いシンボルはもう消えてしまったけど、あの緑のマークはまだ残ってる。 ここに画像の説明を入力

こんにちは、みんな。質問が 1 つあります。RamiHelmi によって提供されたスクリプトを既に取得していますが、拡張ファイル名は次のようなファイルを生成します。

tester.txt --> tester.txt.xls

したがって、「.txt」を削除するにはどうすればよいですか。「tester.xls」ファイル拡張子のみが生成されるように、出力ファイルで.うまくいけば、誰かが私の問題を解決するのを助けることができます..ありがとう

4

2 に答える 2

9

それを自動化するには、ここで説明されている python スクリプトを使用できます。

txt から xls への自動変換

これは、特定のディレクトリに記述されている形式のすべてのテキスト ファイルを XLS ファイルに変換し、それらを同じディレクトリに保存する python スクリプトの更新バージョンです。

# mypath should be the complete path for the directory containing the input text files
mypath = raw_input("Please enter the directory path for the input files: ")

from os import listdir
from os.path import isfile, join
textfiles = [ join(mypath,f) for f in listdir(mypath) if isfile(join(mypath,f)) and '.txt' in  f]

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False        

import xlwt
import xlrd

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'))

編集

上記のスクリプトは、変数で指定された特定のディレクトリ内のすべてのテキスト ファイルのリストを取得し、各テキスト ファイルを次のmypath名前の XLS ファイルに変換します。 generated_xls0.xlsgenerated_xls1.xls

編集

文字列を XLS ファイルに書き込む前に削除する

編集

数値の書式設定を処理するようにスクリプトを修正しました

于 2013-10-30T08:32:01.823 に答える