Openpyxl hakkında yardım

selamlar,

excele veri yazarken en son boş satıra yazdırmak için ne yapmalıyım.

teşekkürler

Append Metodunu kullanmalısın.

Örnek kullanım ve Kaynak bilgisi aşağıdadır.

>>> from openpyxl import Workbook
>>> from openpyxl.utils import get_column_letter
>>>
>>> wb = Workbook()
>>>
>>> dest_filename = 'empty_book.xlsx'
>>>
>>> ws1 = wb.active
>>> ws1.title = "range names"
>>>
>>> for row in range(1, 40):
...     ws1.append(range(600))
>>>
>>> ws2 = wb.create_sheet(title="Pi")
>>>
>>> ws2['F5'] = 3.14
>>>
>>> ws3 = wb.create_sheet(title="Data")
>>> for row in range(10, 20):
...     for col in range(27, 54):
...         _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))
>>> print(ws3['AA10'].value)
AA
>>> wb.save(filename = dest_filename)

Kaynak: Simple usage — openpyxl 3.0.10 documentation

hocam teşekkürler ama burada yeni dosya açıyor ben var olan bir excelde işlem yapacağım şimdi örnekle anlatacağım…

a.xlsx dosyam var
bugün veri çektim
xx.satıra kadar yazdı.
ertesi gün girdim kodumu çalıştırdım
xx satırın dolu olduğunu anlayıp oradan devam etmesini istiyorum

Bu işlem için Pandas kütüphanesini kullanmayı düşünmüyor musunuz?
Aşağıdaki basit bir örneği inceleyin bakalım, belki fikriniz değişir :slight_smile:

import pandas as pd
veri = pd.read_excel("veri.xlsx")
veri

İlk Excel dosyamızın içeriği;

Sütun_1 Sütun_2 Sütun_3 Sütun_4 Sütun_5
0 29 19 11 13 19
1 18 15 17 25 49
2 34 26 40 13 21
3 30 48 11 21 47
4 18 10 14 49 14
5 42 11 21 19 41
6 23 19 26 38 44
7 14 24 47 40 41
8 41 11 41 18 31

İkinci Excel dosyamızın içeriği;

veri2 = pd.read_excel("veri2.xlsx")
veri2
Sütun_1 Sütun_2 Sütun_3 Sütun_4 Sütun_5
0 554 164 739 744 470
1 110 677 110 451 989
2 340 585 754 616 481
3 215 251 837 636 877
4 574 307 347 117 465
5 152 762 831 559 331
6 138 784 672 660 617
7 594 208 535 663 369

İki Excel dosyasının içeriği birleştiriliyor;

tum_veri = pd.concat([veri, veri2])
tum_veri
Sütun_1 Sütun_2 Sütun_3 Sütun_4 Sütun_5
0 29 19 11 13 19
1 18 15 17 25 49
2 34 26 40 13 21
3 30 48 11 21 47
4 18 10 14 49 14
5 42 11 21 19 41
6 23 19 26 38 44
7 14 24 47 40 41
8 41 11 41 18 31
0 554 164 739 744 470
1 110 677 110 451 989
2 340 585 754 616 481
3 215 251 837 636 877
4 574 307 347 117 465
5 152 762 831 559 331
6 138 784 672 660 617
7 594 208 535 663 369

İlk Excel dosyamızın içeriği değiştiriliyor, (Birleştirilmiş tablo dosyaya aktarılıyor / dosyanın üzerine yazılıyor);

tum_veri.to_excel("veri.xlsx")

isteğimi karşılamıyor hocam burda 2 excel dosyası var bende ise tek bir dosya var

manuel yada kodumla excel dosyasına sürekli veri girişi olcak ama kodum hep enson boş satıra ekliyecek

edit :pandas bu isteğimi karşılarsa pandas kütüphanesinide kullanabilirim

Bu örnekte iki excel dosyasının olmasının sebebi, veriyi nereden çektiğini bilemediğim için, birleştirme işlemi için ikinci bir veriye ihtiyaç duymam ve çözüm mantığını anlatabilmem içindi.

  1. dosyayı, kaynaktan çektiğin veri olarak düşünebilirsin.