Excelファイルの内容:
Excelを読みます
#コーディング= UTF-8 輸入xlrd 輸入SYS リロード(SYS) sys.setdefaultencoding( 'UTF-8') 輸入トレースバック クラスexcelHandle: デフ・デコード(自己、ファイル名、シート名): 試してみてください。 ファイル名= filename.decode( 'UTF-8') シート名= sheetname.decode( 'UTF-8') 例外を除きます: 印刷traceback.print_exc() リターンファイル名、シート名 デフread_excel(自己、ファイル名、シート名): ファイル名、シート名= self.decode(ファイル名、シート名) rbook = xlrd.open_workbook(ファイル名) シート= rbook.sheet_by_name(シート名) 行= sheet.nrows COLS = sheet.ncols all_content = [] 範囲(行)でのiについて: row_content = [] 範囲(COLS)でjに対して: セル= sheet.cell_value(i、j)は row_content.append(セル) all_content.append(row_content) 印刷 '[' + ' '参加( "'" + STR(要素)+ "'" row_contentの要素について)+ ']' all_content戻ります __name__ == '__main__' の場合: EH = excelHandle() ファイル名= r'G:\テスト\のctype.xls' シート名=「シート1」 eh.read_excel(ファイル名、シート名)
出力:
【 'シェーピング'、 '175.0'] [「文字列」、「最後の騎士」] [ 'フロート'、 '6.23'] [ '日付'、'42、909.6461574' ] [ 'ヌル' ''] [ 'ブール'、 '1']
あなたはすべての文字列の日付小数に点出力が、出力を浮動数字によると、見ることができますか?!ブール1または0を出力
コードのマイナーな変更:見て、テーブルのデータ型
範囲(行)でのiについて: row_content = [] 範囲(COLS)でjに対して: ctype = sheet.cell(i、j)は.ctypeの#テーブルデータ型 印刷CTYPE、 セル= sheet.cell_value(i、j)は row_content.append(セル) all_content.append(row_content) プリント 印刷 '[' + ' '参加( "'" + STR(要素)+ "'" row_contentの要素について)+ ']'
出力:
1 2 【 'シェーピング'、 '175.0'] 1 1 [「文字列」、「最後の騎士」] 1 2 [ 'フロート'、 '6.23'] 1 3 [ '日付'、'42、909.6461574' ] 1 0 [ 'ヌル' ''] 1 4 [ 'ブール'、 '1']
Pythonは、上記の例のCTYPEで、すなわち5つのタイプ、内に戻されるセルの内容を読み出すに優れ。
CTYPE:0、空、1列、2数、3日、4ブール、5エラー
だから、何CTYPEを決定し、それに適切な治療を行います。
最終的なコード:
#コーディング= UTF-8 輸入xlrd 輸入SYS リロード(SYS) sys.setdefaultencoding( 'UTF-8') 輸入トレースバック 日時インポート日時から xlrd輸入xldate_as_tupleから クラスexcelHandle: デフ・デコード(自己、ファイル名、シート名): 試してみてください。 ファイル名= filename.decode( 'UTF-8') シート名= sheetname.decode( 'UTF-8') 例外を除きます: 印刷traceback.print_exc() リターンファイル名、シート名 デフread_excel(自己、ファイル名、シート名): ファイル名、シート名= self.decode(ファイル名、シート名) rbook = xlrd.open_workbook(ファイル名) シート= rbook.sheet_by_name(シート名) 行= sheet.nrows COLS = sheet.ncols all_content = [] 範囲(行)でのiについて: row_content = [] 範囲(COLS)でjに対して: ctype = sheet.cell(i、j)は.ctypeの#テーブルデータ型 セル= sheet.cell_value(i、j)は 場合のctype == 2とセル%1 == 0:#成形した場合 セル= INT(セル) elifのctype == 3: #DateTimeオブジェクトに回し 日付=日時(* xldate_as_tuple(セル、0)) セル= date.strftime( '%Y /%のD /%mの%のH:%のM:%のS') elifのCTYPE == 4: セル= Trueのセル== 1はfalseであれば row_content.append(セル) all_content.append(row_content) 印刷 '[' + ' '参加( "'" + STR(要素)+ "'" row_contentの要素について)+ ']' all_content戻ります __name__ == '__main__' の場合: EH = excelHandle() ファイル名= r'G:\テスト\のctype.xls' シート名=「シート1」 eh.read_excel(ファイル名、シート名)
出力:
[ 'シェーピング'、 '175'] [「文字列」、「最後の騎士」] [ 'フロート'、 '6.23'] [ '日付'、 '2017/23/06夜03時30分28秒'] [ 'ヌル' ''] [ 'ブール'、 '真の']
転送します。https://www.cnblogs.com/xxiong1031/p/7069006.html