Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 1.93 KB  |  hits: 52  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/env python
  2. import xlrd
  3. import xlwt
  4. import sys
  5.  
  6.  
  7.  
  8. result_xls = xlwt.Workbook(encoding="utf-8")
  9. sheet1 = result_xls.add_sheet("Sheet 1")
  10.  
  11.  
  12. def is_number(code):
  13.     try:
  14.         code = int(code)
  15.         return code
  16.     except ValueError:
  17.         return code
  18.  
  19. """
  20.     Read first  xls file
  21. """
  22. xls1= xlrd.open_workbook('5678.xls')
  23. xls1.sheet_names()
  24. data1 = xls1.sheet_by_index(0)
  25.  
  26. lista_coloane_1 = [name for name in  data1.row_values(0)]
  27. data1_code_list = []
  28. data1_list = {}
  29.  
  30. for i in range(1, data1.nrows):
  31.     row = data1.row_values(i)
  32.     row[0] = is_number(row[0])
  33.     data1_code_list.append(row[0])
  34.     data1_list[row[0]] = [val for val in row]
  35.  
  36.  
  37. """
  38.     Read second xls file
  39. """
  40.  
  41. xls2 = xlrd.open_workbook('1234.xls')
  42. xls2.sheet_names()
  43. data2 = xls2.sheet_by_index(0)
  44.  
  45. lista_coloane_2 = [name for name in  data2.row_values(0)]
  46. lista_coloane =  lista_coloane_2 + lista_coloane_1
  47. data2_code_list = []
  48. data2_list = {}
  49.  
  50.  
  51. ''' Add top clons '''
  52. for i in range(len(lista_coloane)):
  53.     sheet1.write(0, i, lista_coloane[i])
  54.  
  55. ''' Parse datalist 2 '''
  56. for i in range(1, data2.nrows):
  57.     row = data2.row_values(i)
  58.     row[0] = is_number(row[0])
  59.  
  60.     data2_code_list.append(row[0])
  61.  
  62.     print_fields = [val for val in row];
  63.  
  64.     data2_list[row[0]] = print_fields
  65.  
  66.     if row[0] in data1_list:
  67.         print_fields = print_fields + data1_list[row[0]]
  68.  
  69.     # write columns values for the row
  70.     for j in range(len(print_fields)):
  71.         sheet1.write(i, j, print_fields[j])
  72.  
  73.  
  74. """ Add elements that are in the first list and are not in the second list """
  75. i = i+1
  76. sheet1.write(i, 0, 'Rezultate care ')
  77. list_diff = list(set(data1_code_list).difference(set(data2_code_list)))
  78. for code in list_diff:
  79.     i = i+1
  80.     print_fields = lista_coloane_2 + data1_list[code]
  81.     for j in range(len(print_fields)):
  82.             sheet1.write(i, j, print_fields[j])
  83.  
  84.  
  85. result_xls.save("python_spreadsheet.xls")