
Я хочу записать данные, которые не записываются в один Excel, а другие записи в другой Excel вместе с удар по камере.
Мой вывод1:
col1 | col2 | col3 | col4 |col5 |
Sampletext1 | Combines TextC2 |Sample3 | text4 |text5 |
Sampletext2 | Combines TextC2 |Sample3_1 | text4_1 |text5 |
Sampletext2 | Combines TextC2 |Sample3_1 | text4_2 |text5 |
Мой результат2:
col1 | col2 | col3 | col4 |col5 |
Sampletext2 | Combines TextC2 |Sample3_1 | text4_3 |text5 |

'text4_3` также должен быть вычеркнут в выходном файле.
Я пробовал использовать openpyxl в python
from openpyxl import load_workbook
from openpyxl import Workbook
import pandas as pd
input_file = 'myexecel.xslx'
Workbook = load_workbook(input_file)
for i in Workbook.worksheets:
if i.sheet_state == "visible":
sheetname = str(i).replace('', '').strip()
ws = Workbook[sheetname]
#unmerging the cells
for merged_cell in ws.merged_cells:
min_row, min_col, max_row, max_col = merged_cell.min_row, merged_cell.min_col, merged_cell.max_row, merged_cell.max_col
data = ws.cell(row=min_row, column=min_col).value
ws.unmerge_cells(start_row=min_row, start_column=min_col, end_row=max_row, end_column=max_col)
for row in ws.iter_rows(min_row=min_row, min_col=min_col, max_row=max_row, max_col=max_col):
for cell in row:
cell.value = data
data_all = [[cell for cell in row] for row in ws.iter_rows(values_only=True)]
df_raw = pd.DataFrame(data_all[1:], columns=headercols)
df_raw["strike_flag"] = [any(cell.font.strikethrough for cell in row) for row in ws.iter_rows(min_row=2)]
с помощью приведенного выше кода я смог определить, зачеркнута ли ячейка или нет. Но не знаю, как разделить записи с зачеркиванием и без зачеркивания.
В приведенном выше коде data_all представляет собой список списков. list2 содержит данные с переносимым текстом, а также зачеркнутый и не зачеркнутый текст.
Теперь я хочу извлечь файл index3. В текущем примере это 3, но оно может быть любым.
Чтобы узнать, существует ли RichText в списке или нет, я попробовал код ниже. что выдает ошибку.
AttributeError: объект 'str' не имеет атрибута 'value'
from openpyxl import load_workbook
import pandas as pd
from openpyxl.cell.rich_text import TextBlock, CellRichText
from openpyxl.utils import range_boundaries
for cell in data_all[2]:
if type(cell.value) == CellRichText:
for text in cell.value:
if text.font.strike:
print("struck", text)
else:
print("unstruck", text)
else:
print("unstruck", cell.value)
Подробнее здесь: https://stackoverflow.com/questions/786 ... rate-files