في الدالة التي تقوم بقراءة الخلايا يمكنك إضافة ال if condition للتحقق إذا كانت هناك خلايا فارغة مثال على ذلك
ws=wb.active
names=ws['C']
for x in names:
if x.value is None:
break
print(x.value)
أما بالنسبة للسؤال الثاني فيمكنك عمل unmerge ثم إضافة القيم التي تحتاجها ثم عمل merge للخلية مجدداً عن طريق الكود التالي
from openpyxl.workbook import Workbook
wb = Workbook()
ws = wb.active
ws.merge_cells('A2:D2')
ws.unmerge_cells('A2:D2')
# or equivalently
ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
يمكنك قراءة التوثيق الخاص بالمكتبة من هذا الرابط للمزيد من المعلومات