Я работаю над функцией на python, используя библиотеку openpyxl
, которая будет загружать столбцы с указанного листа в книгу и выполнять некоторую обработку данных перед возвратом столбцы в списках или массивы numpy.Ячейки «Нет», загруженные в начале столбцов openpyxl
Чтобы загрузить столбцы, я загружаю книгу, получая целевой лист, хранение столбцов, а затем просто итерацию через каждую колонку и добавляя содержимое ячейки списка:
#open the excel file
wb = openpyxl.load_workbook(fname, read_only = True)
print('\nWorkbook "%s" open...' % (fname))
#get the target sheet
sh = wb.get_sheet_by_name(sheet)
print('Sheet "%s" aquired...' % (sheet))
#store only the desired columns of the sheet
sheetcols = sh.columns
columns = [[] for i in range(L)]
for i in range(L):
columns[i] = sheetcols[cols[i] - 1]
#read selected columns into a list of lists
print('Parsing desired columns of data...')
data = [[] for i in range(L)]
#iterate over the columns
for i in range(L):
#iterate over a specific column
print(len(columns[i]))
for j in range(len(columns[i])):
#store cell contents as a string (for now)
data[i].append(columns[i][j].value)
Некоторые столбцы загрузит с несколькими None
элементами в начале их соответствующего списка, которые не соответствуют данным в файле excel. Например, ожидается, что столбец с двумя пустыми ячейками в начале (слева пустой из-за пространства заголовка или любого другого) загрузит два элемента None
в начале своего списка, но он может загружать пять или шесть элементов None
вместо двух ...
Это постоянно каждый раз, когда я запускаю функцию. Те же колонки будут иметь эту проблему каждый раз, что заставляет меня думать, что на листе Excel есть скрытые данные. Я попытался очистить содержимое ячеек, которые должны быть пусты, но не повезло.
Кто-нибудь более знаком с модулем openpyxl
или, может быть, просто преуспевает, думают о том, почему эти таинственные дополнительные элементы None
попадают в импортированные данные?
Будет ли 'if cell == None: cell =" "' работать? – thefoxrocks
Да, я мог бы справиться с этими дополнительными 'Нет', но я хочу, чтобы избавиться от всех из них. Но когда есть фактические пустые ячейки в столбце, я должен их хранить. Я не могу вытащить все «Нет», потому что в начале столбца или во всех реальных данных могут быть реальные пустые ячейки, и я хочу иметь возможность сравнивать несколько столбцов. Элементы столбцов должны иметь одинаковые индексы. –
Хорошо, так что фактические числа заменяются на 'None's, если я правильно читаю. Интересно. Нет недопустимых символов? – thefoxrocks