2016-12-20 4 views
0

私はPython2を使用して解析しているデータを.txtファイルにエクスポートする3行のExcelスプレッドシートを持っています。 3行目は255文字をはるかに超えているため、パーサが255カラムの長さに達すると、残りのデータは切り捨てられます。とにかくこれに対処するには?Python 2を使用して255文字以上のExcelシートを解析する

from openpyxl import load_workbook 
outf = open('c:\\Python27\\scripts\\saba_parser\\index.txt', 'w') 
outf2 = open('c:\\Python27\\scripts\\IMS\\cse_errors.txt', 'w') 
wb = load_workbook('c:\\Python27\\scripts\\saba_parser\\Copy of Saba_Views_good.xlsx') 
s1 = wb.worksheets[0] 


for r in s1: 
    name = str(r[0].value) 
    if r[2].value == None: 
     tail = "None" 
    else: 
     #info = r[2].value.split("FROM")[-1] 
     info = str(r[2].value) 
     head, sep, tail = info.partition("FROM") 
outf.write(name+','+tail+"\n") 
#outf.write(name+','+info+"\n") 

助けてください。

+4

あなたがファイルをどのように読んでいるのか教えてくださいましたか? –

+0

残りのコードを追加しました。私はもともと私はしました。申し訳ありません... –

答えて

0

おそらくブックを"read only"としてロードすると、長い列を処理できます。ファイルが正しく設定さ寸法を有していない場合

どうやら、これはトラブル

につながる可能性が読み取り専用モードでは、特に使用されるアプリケーションとワークシートについての正しい情報を提供するファイルを作成したライブラリを、依存していますその一部は寸法として知られています。一部のアプリケーションでこれが正しく設定されていません。 ws.calculate_dimensions()を使用して、ワークシートの見かけの寸法を確認することができます。これはあなたが間違っている知っている範囲を返す場合、A1は言う:A1は、単にあなたが

があなたのコードに、このパッチを使用してみてくださいファイルを操作できるようにする必要がありますmax_rowとmax_column属性をリセット

wb = load_workbook('c:\\Python27\\scripts\\saba_parser\\Copy of Saba_Views_good.xlsx',read_only=True) 
s1 = wb.worksheets[0] 
# Only use the next line if s1.calculate_dimensions() does not give you the expected result 
# s1.max_row = s2.max_column = None 
+0

"read_only = True"を追加しました。実行すると、ファイルに何も追加しなくなり、.txtファイルが空白になりました... –

+0

ファイルを書き終えたら閉じますか? – lucianopaz

+0

投稿された元のコードでは、私はクローズしておらず、正しくクローズしました。 read_onlyを追加すると、それはまだ閉じられ、ファイルには何も追加されません。 outf.writeの後ろに近いステートメントを置くと、それはまだ閉じて何も追加しません。 –

関連する問題