python excelを読み出し、対応する生成浮動小数点データを処理する


1.python excel読み取り検査が簡単
def open_excel(file=u'D:\\python27File\\crmAutoTest\\configFile\\logincase.xlsx'):
#     try:
#         data = xlrd.open_workbook(file)
#         return data
#     except Exception as e:
#         print(str(e))
# def excel_table_byname(file= u'D:\\python27File\\crmAutoTest\\configFile\\logincase.xlsx',colnameindex=0,by_name=u'Sheet1'):#      
#      data = open_excel(file)
#      table = data.sheet_by_name(by_name) #    
#      nrows = table.nrows  #      
#      colnames = table.row_values(colnameindex)  #      ['  ', '   ', '    ', '  ']
#      list = []
#      for rownum in range(1, nrows): #    Excel     ,       
#          row = table.row_values(rownum)
#          if row:
#              app = {}
#              for i in range(len(colnames)):
#                  app[colnames[i]] = row[i]    #       
#              list.append(app)
#      return list

2.対応はテキストデータが浮動小数点または科学的なカウントであり、時間フォーマットの表示が不正確である
import xlrd
import traceback
from datetime import datetime
from xlrd import xldate_as_tuple

class excelHandle:
    def decode(self, filenam, sheetnam):
        try:
            filename = filenam.encode(encoding='utf8')
            sheetname = sheetnam.encode(encoding='utf8')
        except Exception:
            print( traceback.print_exc())
        return filenam, sheetnam
    def read_excel(self, filename, sheetname):
        filenam, sheetnam = self.decode(filename,sheetname)
        rbook = xlrd.open_workbook(filenam)
        sheet = rbook.sheet_by_name(sheetnam)
        rows = sheet.nrows
        cols = sheet.ncols
        all_content = []
        for i in range(rows):
            row_content = []
            for j in range(cols):
                ctype = sheet.cell(i, j).ctype  #        
                cell = sheet.cell_value(i, j)
                if ctype == 2 and cell % 1 == 0:  #      
                    cell = int(cell)
                elif ctype == 3:
                    #   datetime  
                    date = datetime(*xldate_as_tuple(cell, 0))
                    cell = date.strftime('%Y/%d/%m %H:%M:%S')
                elif ctype == 4:
                    cell = True if cell == 1 else False
                row_content.append(cell)
            all_content.append(row_content)
            print( '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']')
        return all_content
if __name__ == '__main__':
    eh = excelHandle()
    filenam = r'D:\\python27File\\crmAutoTest\\configFile\\logincase.xlsx'
    sheetnam = 'Sheet1'
    eh.read_excel(filenam,sheetnam)
データ処理後に浮動小数点データフォーマットが生成されないデータ