2017-08-24 6 views
-1

私は.csvを.xlsxに変換しています。私はこのenter image description herecsvをxlsxに変換し、フィールドヘッダーに奇妙な出力を入れます

を得続ける以外すべてがうまくいっているこれは私のコードです:誰でも似たように走っており、どのように彼らはそれを修正について行けば

def create_workbook(my_csv): 
    wb = Workbook() 
    ws = wb.active 
    with open(my_csv, 'r') as f: 
     for row in csv.reader(f): 
      ws.append(row) 
    wb.save(my_csv[:-4] + '.xlsx') 
    f.close() 

私は疑問に思って。可能であれば、列の名前を変更するよりも強力なものを探しています。

+0

BOMのように見えます。私は@ Steve Lassopの提案を試みたいと思う:https://stackoverflow.com/questions/20899939/removing-bom-from-gziped-csv-in-python – HodgePodge

+0

ありがとう、csvはSQLの出力から、私は手動で名前を付けたヘッダー。ヘッダーはSQL出力を持つUTF-8型であるとは限りませんか? – Mwspencer

答えて

1

「これはヘッダーが常にSQL出力を持つUTF-8タイプであるとは限りませんか?

「SQL」からのcsvsは、ファイルを生成するために使用するインターフェイスのデフォルトに固有のものです。いくつかのシナリオ:

  1. あなたは、あなたが出力を希望する形式でエンコードされるように(プロパティの設定方法を確認したいでしょう機能「CSVファイルへの出力」を持っているIDEを使用している場合すなわちutf-8)。
  2. MySQLでコマンドラインを使用している場合は、出力のエンコードを強制するにはCHARACTER SET utf8を追加するとよいでしょう。これについてSQLフレーバのドキュメントを見ることをお勧めします。