Skip to content
excelIcd.py 2.86 KiB
Newer Older
Gino Tosti's avatar
Gino Tosti committed
import pandas as pd
from datetime import date
import sys,os
from optparse import OptionParser
import openpyxl.utils.exceptions as ecc
# Read the ICD excel file

class excelIcd:
	def __init__(self, excel_file=None):
		self.bookfile =excel_file
		self.book = None
		self.nsheets=0
		self.sheets={}
		self.MainSheet={}
		self.GetSheet={}
		self.SetSheet={}
		self.CmdSheet={}
		self.ModeSheet={}
		self.debug=False
		self._getExcelWorkbook()
	def setDebugModeOn(self):
		debug=True
	def setDebugModeOff(self):
		debug=False
	def _getExcelWorkbook(self):
		try: 
			self.book = pd.ExcelFile(self.bookfile,engine='openpyxl')
		except FileNotFoundError:
			print("File does not exist")
		except ecc.InvalidFileException:
			print(" openpyxl does not support the old .xls file format\n","Trying with xlrd")
			self.book = pd.ExcelFile(self.bookfile)
		self.nsheets = len(self.book.sheet_names)
		if(self.debug):
			print(self.nsheets,self.book.sheet_names)
		for sheet_name in (self.book.sheet_names):
			#sheet=self.book.sheet_names[sheet_index]
			self.sheets[sheet_name]=self.book.parse(sheet_name)
			siz=self.sheets[sheet_name].shape
			if(self.debug):
				print(self.sheets[sheet_name].columns,siz[0],siz[1])
		self.MainSheet=self.getSheet("Main")
Gino Tosti's avatar
Gino Tosti committed
		self.GetSheet=self.getSheet("GET")
		self.SetSheet=self.getSheet("SET")
		self.CmdSheet=self.getSheet("CMD")
		self.ModeSheet=self.getSheet("MODE")
		

	def getMain(self):
		self.MainSheet["NCols"]=(self.sheets["Main"].shape)[1]
		self.MainSheet["NRows"]=(self.sheets["Main"].shape)[0]
		self.MainSheet["Colnames"]= self.sheets["Main"].columns
		for colind,coname in enumerate (self.sheets["Main"]):
Gino Tosti's avatar
Gino Tosti committed
			
			#print "CCC",coname
			colval=[]
			if(self.debug):
				print("****",coname,"*****",(str(coname)).replace(' ','_'))
			#colname=(str(coname)).replace(' ','_')
			for idx in range(0,self.MainSheet["NRows"]):
				#print "BBBBB", self.sheets["Main"].cell(idx,colind).value
				colval.append(self.sheets["Main"].iat[idx,colind])
Gino Tosti's avatar
Gino Tosti committed
				
			self.MainSheet[coname]=colval
			if(self.debug):
				print(coname,self.MainSheet[coname])
		print("Read Sheet: Main"," from:", self.bookfile )
		return self.MainSheet
		
	def getSheet(self, name):
		Sheet={}
		try:
			Sheet["NCols"]=(self.sheets[name].shape)[1]
			Sheet["NRows"]=(self.sheets[name].shape)[0] 
			Sheet["Colnames"]= self.sheets[name].columns
			#print(Sheet["Colnames"])
			for colind,coname in enumerate (self.sheets[name]):
				#coname=self.sheets["Main"].cell(1,colind).value
				#print "CCC",coname
				colval=[]
				#colname=(str(coname)).replace(' ','_')
				for idx in range(0,Sheet["NRows"]):
					#print "BBBBB", self.sheets["Main"].cell(idx,colind).value
					colval.append(self.sheets[name].iat[idx,colind])
					
				Sheet[coname]=colval
				#print(coname,Sheet[coname])
			print("Read Sheet:",name," from:", self.bookfile )
			return Sheet
		except:
			print("sheet:",name,"does not exist")
			return None