python excelを読み出し、対応する生成浮動小数点データを処理する
1.python excel読み取り検査が簡単
2.対応はテキストデータが浮動小数点または科学的なカウントであり、時間フォーマットの表示が不正確である
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)
データ処理後に浮動小数点データフォーマットが生成されないデータ