import xlrd
import datetime
import uuid
import os


def process_cell(table,i,j):
  _temp=table.cell(i,j)
  if _temp.ctype==1:
    return _temp.value
  if _temp.ctype==2:
    return str(int(_temp.value))
  #raise "Error xls!"

def processxls(FILE):
  BASE_DIR = os.path.dirname(os.path.dirname(__file__))
  xlsname = os.path.join(BASE_DIR, 'uploads', '%s.xls' % str(uuid.uuid4()))
  destination = open(xlsname,'wb')
  for chunk in FILE.chunks(): 
      destination.write(chunk)
  destination.close()
  data = xlrd.open_workbook(xlsname)
  table = data.sheet_by_index(0)
  head = table.row_values(0)
  assert len(head)==6
  assert head[0].strip()==u'\u5b66\u53f7'
  assert head[1].strip()==u'\u59d3\u540d'
  assert head[2].strip()==u'\u6027\u522b'
  assert head[3].strip()==u'\u5bc6\u7801'
  assert head[4].strip()==u'\u5206\u7ec4\u53f7'
  assert head[5].strip()==u'\u751f\u65e5'



  rets=[]
  for i in range(table.nrows-1):
    col = table.row_values(i+1)
    sid=str(int(col[0]))
    name=process_cell(table,i+1,1)
    sex=col[2]
    password=process_cell(table,i+1,3)
    cid=str(int(col[4]))

    if table.cell(i+1,5).ctype==3:
      birthday = datetime.date(*xlrd.xldate_as_tuple(table.cell(i+1,5).value,data.datemode)[:3])
    else:
      try:
        birthday = datetime.datetime.strptime(process_cell(table,i+1,5), "%Y-%m-%d").date()
      except:
        try:
          birthday = datetime.datetime.strptime(process_cell(table,i+1,5), "%Y%m%d").date()
        except:
          pass
          #raise "Error xls!"
    rets.append((sid,name,sex,password,cid,birthday))
  return rets

