В настоящее время я сталкиваюсь с проблемой, когда мне нужно объединить все данные, показанные на изображениях ниже, только в одну строку.
Поэтому, используя Python и Openpyxl, я попытался написать скрипт синтаксического анализа, который читает строку и копирует только тогда, когда значения не равны нулю или не являютсяидентично, в новую рабочую книгу.
Я выхожу из диапазона ошибок, а код не сохраняет только те данные, которые мне нужны.Я потратил на это несколько часов, поэтому я подумал, что могу попросить здесь, чтобы посмотреть, могу ли я открепиться.
Я прочитал некоторую документацию по Openpyxl и о создании списков в Python, попробовал пару видеона YouTube, но ни один из них не сделал именно то, что я пытался достичь.
import openpyxl
from openpyxl import Workbook
path = "sample.xlsx"
wb = openpyxl.load_workbook(path)
ws = wb.active
path2 = "output.xlsx"
wb2 = Workbook()
ws2 = wb2.active
listab = []
rows = ws.max_row
columns = ws.max_column
for i in range (1, rows+1):
listab.append([])
cellValue = " "
prevCell = " "
for c in range (1, rows+1):
for r in range(1, columns+1):
cellValue = ws.cell(row=r, column=c).value
if cellValue == prevCell:
listab[r-1].append(prevCell)
elif cellValue == "NULL":
listab[r-1].append(prevCell)
elif cellValue != prevCell:
listab[r-1].append(cellValue)
prevCell = cellValue
for r in range(1, rows+1):
for c in range (1, columns+1):
j = ws2.cell(row = r, column=c)
j.value = listab[r-1][c-1]
print(listab)
wb2.save("output.xlsx")
Там должна быть одна строка с информацией ниже:
ods_service_id |service_name |service_plan_name |Процессор |RAM |NIC |ПРИВОД |