Удалить / удалить пустые элементы в списке и распечатать эти значения с шаблоном в файле Excel - PullRequest
0 голосов
/ 05 марта 2019

В основном у меня есть (пример) список «строк», а не «целых чисел» данных:

[0]  
[1]  
[2]  
[3]  
[4]  
[5]  
[6]  47
[7]  49
[8]  51
[9]  53
[10]  55
[11]  57
[12]  59
[13]  61
[14]  63
[15]  65

В этом случае я не могу изменить данные и просто удалить белое / пустое пространство, видимое из индекса0-5.Я немного исследовал, и я знаю, что строки неизменны, и я не могу придумать решение, к сожалению.Я буду передавать эти выходные данные в файл Excel также.Это белое / пустое пространство влияет на меня, перенося их в файл Excel, так как оно распознает пустое пространство как строку, которая заполняет первые 6 ячеек пустыми значениями.

Sample result from Excel file

Также у меня возникают трудности при создании шаблона для заполнения этих данных в следующем формате:

Supposed to be pattern of data in Excel

Я использую openpyxl, и я достиг заполненияих по столбцам с помощью цикла:

File_path = 'somepath'
Excel_file = openpyxl.load_workbook(File_path)
Sheet = excel_file.get_sheet_by_name('Sheet1')

col = 1
for data in Sample_list:
   Sheet.cell(row = 1, column = col).value = data
   col+=1

   if col == 16:
      Excel_file.save(File_path)
      break

Заранее спасибо

1 Ответ

0 голосов
/ 05 марта 2019

Внутри вашего цикла вы можете использовать isspace, чтобы проверить, является ли элемент только пробелами (или даже символами табуляции и перевода строки), прежде чем обновлять его в Excel:

# This will fill rows 1 and 3 but you can change that as per your use case
count = 0
for data in Sample_list:
    if not data or data.isspace():
        continue
    Sheet.cell(row = 1 if count % 2 == 0 else 3, column = col).value = data
    col+=count % 2 # Column only increments when count is odd
    count+=1

ИЛИ вы можете удалить всепробелы из списка заранее:

Sample_list = [elem for elem in Sample_list if not elem.isspace()]
...