- #!/usr/bin/env python
- import xlrd
- import xlwt
- import sys
- result_xls = xlwt.Workbook(encoding="utf-8")
- sheet1 = result_xls.add_sheet("Sheet 1")
- def is_number(code):
- try:
- code = int(code)
- return code
- except ValueError:
- return code
- """
- Read first xls file
- """
- xls1= xlrd.open_workbook('5678.xls')
- xls1.sheet_names()
- data1 = xls1.sheet_by_index(0)
- lista_coloane_1 = [name for name in data1.row_values(0)]
- data1_code_list = []
- data1_list = {}
- for i in range(1, data1.nrows):
- row = data1.row_values(i)
- row[0] = is_number(row[0])
- data1_code_list.append(row[0])
- data1_list[row[0]] = [val for val in row]
- """
- Read second xls file
- """
- xls2 = xlrd.open_workbook('1234.xls')
- xls2.sheet_names()
- data2 = xls2.sheet_by_index(0)
- lista_coloane_2 = [name for name in data2.row_values(0)]
- lista_coloane = lista_coloane_2 + lista_coloane_1
- data2_code_list = []
- data2_list = {}
- ''' Add top clons '''
- for i in range(len(lista_coloane)):
- sheet1.write(0, i, lista_coloane[i])
- ''' Parse datalist 2 '''
- for i in range(1, data2.nrows):
- row = data2.row_values(i)
- row[0] = is_number(row[0])
- data2_code_list.append(row[0])
- print_fields = [val for val in row];
- data2_list[row[0]] = print_fields
- if row[0] in data1_list:
- print_fields = print_fields + data1_list[row[0]]
- # write columns values for the row
- for j in range(len(print_fields)):
- sheet1.write(i, j, print_fields[j])
- """ Add elements that are in the first list and are not in the second list """
- i = i+1
- sheet1.write(i, 0, 'Rezultate care ')
- list_diff = list(set(data1_code_list).difference(set(data2_code_list)))
- for code in list_diff:
- i = i+1
- print_fields = lista_coloane_2 + data1_list[code]
- for j in range(len(print_fields)):
- sheet1.write(i, j, print_fields[j])
- result_xls.save("python_spreadsheet.xls")