def nadia_process_xls(filename, data_headers_location, data_values_location, y_axis_location, global_data_vector, global_const_vector, outfile): """Given an XLS file and all the settings -- such as where are headers, where is data, where is Y axis, etc. -- this function translates such XLS file in a sequence of JSON that match very closely the format of a CKAN package.""" sheet = open_sheet(filename) data = data_section(sheet, data_headers_location, data_values_location) y_axis(sheet, y_axis_location, data) data = remove_empty_lines(data) for name, location in global_data_vector: global_data(data, sheet, name, location) for name, value in global_const_vector: global_const(data, name, value) jsonize(data, outfile)
nrows = len(cells) ncols = len(cells[0]) for j in range(0, ncols): for i in range(0, nrows): if cells[i][j] == u"1.0": cells[i][j] = u"si" cells[i][j] = cells[i][j].lower() return cells def data_section(sheet, hdrs_range, values_range): hdrs = _data_headers(sheet, hdrs_range) values = _data_values(sheet, values_range) for row in values: while len(row) < len(hdrs): row.append(u"") while len(row) > len(hdrs): hdrs.append(u"") data = [] data.append(hdrs) for row in values: data.append(row) return data if __name__ == "__main__": sheet = open_sheet("test/sample1.xls") data = data_section(sheet, "C3:R6", "C7:R24") pprint.pprint(data)