Python-編寫Python腳本處理Excel事件列表生成iOS代碼

前言

公司的項目,需要對項目中事件上報進行重新處理和封裝,方便調用和自動上報!自己花了半天時間全部封裝搞好,如下圖:

其中ASLogsEventName類是存放約定好的事件字段的,但是APP中有四百個事件上報的點,要是一個一個手寫上去,估計手要殘了,事件Excel列表如下圖:

所以肯定不能手寫啦😏😉😉

自動化腳本

這裏我使用Python腳本,自動讀取Excel表格,然後生成iOS的代碼,這樣就簡單的多了!🤗

使用了Python的xlrd庫,安裝命名如下:

pip3 install xlrd

話不多說上代碼如下:

import xlrd

# 過濾了不需要記錄的表
_ignore_list = ['更新記錄', 'App頁面', '公共屬性']
# 事件名列表
_event_name_list = []

# 讀取excel
def read_excel_table(file_path):
	global _tables, _ignore_list
	data = xlrd.open_workbook(file_path)
	for table_name in data.sheet_names():
		if table_name not in _ignore_list:
			table = data.sheet_by_name(table_name)
			analysis_one_table(table, table_name)

# 分析每個表
def analysis_one_table(table, table_name):
	nrows = table.nrows
	ncols = table.ncols
	# 從1開始 不包括第一行標題
	sign = False
	for row in range(1, table.nrows):
		row_values = table.row_values(row)

		if '{' in str(row_values):
			sign = True

		if sign == False:
			analysis_every_row(row_values, table_name)
		
		if '}' in str(row_values):
			sign = False

# 分析每一行
def analysis_every_row(row_values, table_name):
	global _event_name_list
	event_name = row_values[1]
	if '(' in event_name:
		event_name = event_name[:event_name.find('(')]
	if '(' in event_name:
		event_name = event_name[:event_name.find('(')]
	event_name = ''.join(event_name.split())
	event_name = event_name.replace('.', '_')
	event_name = event_name.replace('、', '_')

	if len(event_name) > 0 and event_name not in _event_name_list:
		_event_name_list.append(event_name)
	
		if table_name == '聽故事埋點':
			notes = row_values[2] + '==' + row_values[3]
		else:
			notes = row_values[0] + '==' + row_values[2]

		notes = notes.replace('\n', ' ')
		notes = ''.join(notes.split())
		notes = notes.replace('==', ' ')
		if notes.startswith(' '):
			notes = notes[1:]

		pro_str = '/// ' + notes + '\n'

		# .h的代碼
		# pro_str += 'FOUNDATION_EXPORT NSString *const K'+ event_name +';'

		# .m的代碼
		pro_str += 'NSString *const K'+ event_name +' = @"'+ event_name +'";'

		print(pro_str)
		print('\n')


if __name__ == '__main__':
	file_path = 'ahaschoolAppEvent.xlsx'
	read_excel_table(file_path)





這樣就能自動生成iOS代碼了😘註釋也自動加上了

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章