2017-12-19 6 views
0

をintergerする変更日なしCSVにXLSX: 私のコード:Pythonは、私は、ファイルを.csvにの.xlsxファイルから変更するPythonスクリプトを記述する必要が

import xlrd 
import csv 

def csv_from_excel(): 

    wb = xlrd.open_workbook("Book1.xlsx") 
    sh = wb.sheet_by_name('Att1FF5.tmp') 
    your_csv_file = open('your_csv_file.csv', 'wb') 
    wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) 

    for rownum in xrange(sh.nrows): 
     wr.writerow([unicode(entry).encode("utf-8") for entry in sh.row_values(rownum)]) 

    your_csv_file.close() 

csv_from_excel() 

しかし、すべての日付形式がに変更されました整数。例えば:

2018年4月13日 - > 43203

とにかく、私は日付の書式を維持するために私のコードを変更することができますがあります。私の日付形式はMM/DD/YYYYと思われます

ありがとうございます。

+0

Excelのフォーマット値を、あなたのために。生のXLSXデータに実際に日付があることは確かですか? –

+0

なぜ 'csv'の代わりに' pandas'を使用し、日付として解析するのでしょうか? –

答えて

0

xlrd documentによれば、エクセルに保存されている日付の種類はないので、自分で変換する必要があると思います。

ドキュメントには、Excel for Windows stores dates by default as the number of days (or fraction thereof) since 1899-12-31T00:00:00と記載されています。 43203の日付は次のように計算することができます

import datetime, xlrd 

xlrd.xldate.xldate_as_tuple(43203, 0) # returns (2018, 4, 13, 0, 0, 0) 
xlrd.xldate.xldate_as_datetime(43203, 0) # returns datetime.datetime(2018, 4, 13, 0, 0) 
+0

ありがとう、このことはうまくいきます –

関連する問題