次の一般的な構造を使用して、スプレッドシートから読み取った (および再フォーマットして書き直した) Excel スプレッドシートから大量のデータを読み取っています。
book = open_workbook('file.xls')
sheettwo = book.sheet_by_index(1)
out = open('output.file', 'w')
for i in range(sheettwo.nrows):
z = i + 1
toprint = """formatting of the data im writing. important stuff is to the right -> """ + str(sheettwo.cell(z,y).value) + """ more formatting! """ + str(sheettwo.cell(z,x).value.encode('utf-8')) + """ and done"""
out.write(toprint)
out.write("\n")
この場合、x と y は任意のセルです。x はあまり任意ではなく、utf-8 文字を含みます。
これまでのところ、エラーが発生することがわかっているか、utf-8 を使用せずにエラーが予測されるセルでのみ .encode('utf-8') を使用してきました。
私の質問は基本的に次のとおりです。不要な場合でも、すべてのセルで .encode('utf-8') を使用することに不利な点はありますか? 効率は問題ではありません。主な問題は、あるべきではない場所に utf-8 文字があっても機能することです。「.encode('utf-8')」をすべてのセル読み取りに一括してもエラーが発生しない場合は、おそらくそれを行うことになります。