Script da her gün yeni excel dosyası açıyor aynı excele nasıl yazdırabilirim

Berk epli

Üye
Katılım
31 Mar 2020
Mesajlar
68
Puanları
1
Yaş
25
script da her gün yeni execel dosyası açıyor aynı execele nasıl yazdırabilirim
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Eğer her gün aynı Excel dosyasına veri eklemek istiyorsanız ve her gün yeni bir dosya açmak yerine mevcut dosyaya yazmak istiyorsanız, 2 şekilde yapabilirsiniz.

1. Yol: Python kullanarak bu işlemi gerçekleştirebiliriz.

import openpyxl
from openpyxl import load_workbook
from datetime import datetime

def main():
# Excel dosyasının adını belirtin
file_name = "data.xlsx" # Excel dosyasının adını ve yolunu değiştirin

# Eğer dosya varsa yükle, yoksa oluştur
try:
workbook = load_workbook(file_name)
sheet = workbook.active
except FileNotFoundError:
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.append(['Örnek Veri 1', 'Örnek Veri 2']) # İlk satırı oluştur

# Yeni verileri ekleyin (Örnek olarak her günün tarihi)
today = datetime.today()
new_data = [today.strftime('%Y-%m-%d'), 'Yeni Veri'] # Örnek olarak tarih ve yeni veri
sheet.append(new_data)

# Dosyayı kaydet
workbook.save(file_name)

if __name__ == "__main__":
main()


Bu kod, her gün çalıştırıldığında mevcut Excel dosyasına yeni bir satırda tarih ve örnek bir veri ekleyecektir.
Eğer dosya yoksa, ilk olarak başlık satırını ve ilk veriyi ekleyerek yeni bir Excel dosyası oluşturacaktır.
Bu şekilde her gün aynı Excel dosyasına veri eklemiş olursunuz.
Dosya adını ve yolunu kendi dosyanızla değiştirmeyi unutmayın.


2. Yol: VBA (Visual Basic for Applications) kullanarak Excel içinde bu işlemi gerçekleştirebiliriz.
VBA kodu örneği:

Sub VeriEkle()
Dim Dosya As Workbook
Dim Sayfa As Worksheet
Dim SonSatir As Long
Dim Tarih As String
Dim YeniVeri As String

' Günün tarihini al
Tarih = Format(Date, "yyyy-mm-dd")
' Yeni veriyi tanımla
YeniVeri = "Yeni Veri"

' Excel dosyasını aç
Set Dosya = Workbooks.Open("C:\DosyaYolu\data.xlsx") ' Dosya yolunu kendi dosya yolunuzla değiştirin
' Aktif sayfayı belirle
Set Sayfa = Dosya.Sheets(1) ' İlgili sayfa indeksine göre değiştirin, 1. sayfa için

' Son satırı bul
SonSatir = Sayfa.Cells(Sayfa.Rows.Count, "A").End(xlUp).Row

' Yeni veriyi son satıra ekle
Sayfa.Cells(SonSatir + 1, 1).Value = Tarih
Sayfa.Cells(SonSatir + 1, 2).Value = YeniVeri

' Dosyayı kaydet
Dosya.Save
' Dosyayı kapat
Dosya.Close

' Belleği temizle
Set Dosya = Nothing
Set Sayfa = Nothing
End Sub

Bu VBA kodu, VeriEkle() adında bir makro oluşturur.
Makro, belirtilen Excel dosyasını açar, son satırı bulur ve tarih ile yeni veriyi son satıra ekler.
Son olarak, dosyayı kaydeder ve kapatır.
Kodu Excel'e kopyalayıp bir modül içine yapıştırarak çalıştırabilirsiniz.
Yine, dosya yolunu kendi dosya yolunuzla değiştirmeyi unutmayın.
 
Eğer her gün aynı Excel dosyasına veri eklemek istiyorsanız ve her gün yeni bir dosya açmak yerine mevcut dosyaya yazmak istiyorsanız, 2 şekilde yapabilirsiniz.

1. Yol: Python kullanarak bu işlemi gerçekleştirebiliriz.

import openpyxl
from openpyxl import load_workbook
from datetime import datetime

def main():
# Excel dosyasının adını belirtin
file_name = "data.xlsx" # Excel dosyasının adını ve yolunu değiştirin

# Eğer dosya varsa yükle, yoksa oluştur
try:
workbook = load_workbook(file_name)
sheet = workbook.active
except FileNotFoundError:
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.append(['Örnek Veri 1', 'Örnek Veri 2']) # İlk satırı oluştur

# Yeni verileri ekleyin (Örnek olarak her günün tarihi)
today = datetime.today()
new_data = [today.strftime('%Y-%m-%d'), 'Yeni Veri'] # Örnek olarak tarih ve yeni veri
sheet.append(new_data)

# Dosyayı kaydet
workbook.save(file_name)

if __name__ == "__main__":
main()


Bu kod, her gün çalıştırıldığında mevcut Excel dosyasına yeni bir satırda tarih ve örnek bir veri ekleyecektir.
Eğer dosya yoksa, ilk olarak başlık satırını ve ilk veriyi ekleyerek yeni bir Excel dosyası oluşturacaktır.
Bu şekilde her gün aynı Excel dosyasına veri eklemiş olursunuz.
Dosya adını ve yolunu kendi dosyanızla değiştirmeyi unutmayın.


2. Yol: VBA (Visual Basic for Applications) kullanarak Excel içinde bu işlemi gerçekleştirebiliriz.
VBA kodu örneği:

Sub VeriEkle()
Dim Dosya As Workbook
Dim Sayfa As Worksheet
Dim SonSatir As Long
Dim Tarih As String
Dim YeniVeri As String

' Günün tarihini al
Tarih = Format(Date, "yyyy-mm-dd")
' Yeni veriyi tanımla
YeniVeri = "Yeni Veri"

' Excel dosyasını aç
Set Dosya = Workbooks.Open("C:\DosyaYolu\data.xlsx") ' Dosya yolunu kendi dosya yolunuzla değiştirin
' Aktif sayfayı belirle
Set Sayfa = Dosya.Sheets(1) ' İlgili sayfa indeksine göre değiştirin, 1. sayfa için

' Son satırı bul
SonSatir = Sayfa.Cells(Sayfa.Rows.Count, "A").End(xlUp).Row

' Yeni veriyi son satıra ekle
Sayfa.Cells(SonSatir + 1, 1).Value = Tarih
Sayfa.Cells(SonSatir + 1, 2).Value = YeniVeri

' Dosyayı kaydet
Dosya.Save
' Dosyayı kapat
Dosya.Close

' Belleği temizle
Set Dosya = Nothing
Set Sayfa = Nothing
End Sub

Bu VBA kodu, VeriEkle() adında bir makro oluşturur.
Makro, belirtilen Excel dosyasını açar, son satırı bulur ve tarih ile yeni veriyi son satıra ekler.
Son olarak, dosyayı kaydeder ve kapatır.
Kodu Excel'e kopyalayıp bir modül içine yapıştırarak çalıştırabilirsiniz.
Yine, dosya yolunu kendi dosya yolunuzla değiştirmeyi unutmayın.
bu kodları script da yazdığım yerde mi yazmam gerekiyor python için olan yöntemi
 
Eğer her gün aynı Excel dosyasına veri eklemek istiyorsanız ve her gün yeni bir dosya açmak yerine mevcut dosyaya yazmak istiyorsanız, 2 şekilde yapabilirsiniz.

1. Yol: Python kullanarak bu işlemi gerçekleştirebiliriz.

import openpyxl
from openpyxl import load_workbook
from datetime import datetime

def main():
# Excel dosyasının adını belirtin
file_name = "data.xlsx" # Excel dosyasının adını ve yolunu değiştirin

# Eğer dosya varsa yükle, yoksa oluştur
try:
workbook = load_workbook(file_name)
sheet = workbook.active
except FileNotFoundError:
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.append(['Örnek Veri 1', 'Örnek Veri 2']) # İlk satırı oluştur

# Yeni verileri ekleyin (Örnek olarak her günün tarihi)
today = datetime.today()
new_data = [today.strftime('%Y-%m-%d'), 'Yeni Veri'] # Örnek olarak tarih ve yeni veri
sheet.append(new_data)

# Dosyayı kaydet
workbook.save(file_name)

if __name__ == "__main__":
main()


Bu kod, her gün çalıştırıldığında mevcut Excel dosyasına yeni bir satırda tarih ve örnek bir veri ekleyecektir.
Eğer dosya yoksa, ilk olarak başlık satırını ve ilk veriyi ekleyerek yeni bir Excel dosyası oluşturacaktır.
Bu şekilde her gün aynı Excel dosyasına veri eklemiş olursunuz.
Dosya adını ve yolunu kendi dosyanızla değiştirmeyi unutmayın.


2. Yol: VBA (Visual Basic for Applications) kullanarak Excel içinde bu işlemi gerçekleştirebiliriz.
VBA kodu örneği:

Sub VeriEkle()
Dim Dosya As Workbook
Dim Sayfa As Worksheet
Dim SonSatir As Long
Dim Tarih As String
Dim YeniVeri As String

' Günün tarihini al
Tarih = Format(Date, "yyyy-mm-dd")
' Yeni veriyi tanımla
YeniVeri = "Yeni Veri"

' Excel dosyasını aç
Set Dosya = Workbooks.Open("C:\DosyaYolu\data.xlsx") ' Dosya yolunu kendi dosya yolunuzla değiştirin
' Aktif sayfayı belirle
Set Sayfa = Dosya.Sheets(1) ' İlgili sayfa indeksine göre değiştirin, 1. sayfa için

' Son satırı bul
SonSatir = Sayfa.Cells(Sayfa.Rows.Count, "A").End(xlUp).Row

' Yeni veriyi son satıra ekle
Sayfa.Cells(SonSatir + 1, 1).Value = Tarih
Sayfa.Cells(SonSatir + 1, 2).Value = YeniVeri

' Dosyayı kaydet
Dosya.Save
' Dosyayı kapat
Dosya.Close

' Belleği temizle
Set Dosya = Nothing
Set Sayfa = Nothing
End Sub

Bu VBA kodu, VeriEkle() adında bir makro oluşturur.
Makro, belirtilen Excel dosyasını açar, son satırı bulur ve tarih ile yeni veriyi son satıra ekler.
Son olarak, dosyayı kaydeder ve kapatır.
Kodu Excel'e kopyalayıp bir modül içine yapıştırarak çalıştırabilirsiniz.
Yine, dosya yolunu kendi dosya yolunuzla değiştirmeyi unutmayın.
bunu script ile yapamaz mıyım
 
bunu script ile yapamaz mıyım
Batch dosyası kullanarak da bu işlemi gerçekleştirebiliriz.
Ancak, batch dosyaları Excel dosyalarını doğrudan manipüle edemez.
Ancak, batch dosyası ile Python scriptini çağırabilir ve bu şekilde Excel dosyasını güncelleyebilirsiniz.
 
Batch dosyası kullanarak da bu işlemi gerçekleştirebiliriz.
Ancak, batch dosyaları Excel dosyalarını doğrudan manipüle edemez.
Ancak, batch dosyası ile Python scriptini çağırabilir ve bu şekilde Excel dosyasını güncelleyebilirsiniz.
elinizde bunun örneği var mı rica etsem ilk defa dediğinizi yapacağım python kullanmadım daha önce
 
elinizde bunun örneği var mı rica etsem ilk defa dediğinizi yapacağım python kullanmadım daha önce

Mesela:

import openpyxl
from datetime import datetime

# Mevcut Excel dosyasını aç
excel_file = "existing_data.xlsx"
wb = openpyxl.load_workbook(excel_file)
sheet = wb.active

# Yeni verileri yaz
today = datetime.now().strftime("%Y-%m-%d")
row = sheet.max_row + 1 # Son satırın bir sonrasına yaz
sheet[f"A{row}"] = today
sheet[f"B{row}"] = "Yeni veri 1"
sheet[f"C{row}"] = "Yeni veri 2"
sheet[f"D{row}"] = "Yeni veri 3"

# Dosyayı kaydet
wb.save(excel_file)


Bu betik(script), "existing_data.xlsx" adlı bir Excel dosyasını açar ve her gün yeni verileri bu dosyanın bir sonraki boş satırına ekler.

Bu betiği de aynı şekilde bir batch dosyası aracılığıyla çağırabilir ve bir görev zamanlayıcısı ile her gün belirli bir saatte çalışmasını sağlayabilirsiniz.
Bu sayede, her gün mevcut Excel dosyasına yeni veriler eklenmiş olur

Öncelikle, bir metin düzenleyici (Notepad) ile bir dosya oluşturun ve içine Python script'inizi çağıracak basit bir batch script yazın.

Örneğin, Notepad te bir dosya oluşturun ve içine aşağıdaki satırları yazın:
@echo off
rem Python scriptini çağır
python script_adi.py

Bu doyayı "run_script.bat" adı ile kaydedin

Burada "script_adi.py" yerine, Python script'inizin adını ve yolunu belirtmelisiniz.
Ayrıca, Python'un PATH değişkenine eklenmiş olduğundan ve "python" komutuyla çağrılabildiğinden emin olmalısınız.

Daha sonra, bu "batch" dosyasını bir görev zamanlayıcısına ekleyerek, belirli bir zamanda çalışmasını sağlayabilirsiniz.

Görev zamanlayıcısı, Windows'ta bulunan bir araçtır ve belirli zaman aralıklarında belirli görevleri otomatik olarak çalıştırmanızı sağlar. Detayını (gerekirse) daha sonra yazarım.

Kolay gelsin
 
Mesela:

import openpyxl
from datetime import datetime

# Mevcut Excel dosyasını aç
excel_file = "existing_data.xlsx"
wb = openpyxl.load_workbook(excel_file)
sheet = wb.active

# Yeni verileri yaz
today = datetime.now().strftime("%Y-%m-%d")
row = sheet.max_row + 1 # Son satırın bir sonrasına yaz
sheet[f"A{row}"] = today
sheet[f"B{row}"] = "Yeni veri 1"
sheet[f"C{row}"] = "Yeni veri 2"
sheet[f"D{row}"] = "Yeni veri 3"

# Dosyayı kaydet
wb.save(excel_file)


Bu betik(script), "existing_data.xlsx" adlı bir Excel dosyasını açar ve her gün yeni verileri bu dosyanın bir sonraki boş satırına ekler.

Bu betiği de aynı şekilde bir batch dosyası aracılığıyla çağırabilir ve bir görev zamanlayıcısı ile her gün belirli bir saatte çalışmasını sağlayabilirsiniz.
Bu sayede, her gün mevcut Excel dosyasına yeni veriler eklenmiş olur

Öncelikle, bir metin düzenleyici (Notepad) ile bir dosya oluşturun ve içine Python script'inizi çağıracak basit bir batch script yazın.

Örneğin, Notepad te bir dosya oluşturun ve içine aşağıdaki satırları yazın:
@echo off
rem Python scriptini çağır
python script_adi.py

Bu doyayı "run_script.bat" adı ile kaydedin

Burada "script_adi.py" yerine, Python script'inizin adını ve yolunu belirtmelisiniz.
Ayrıca, Python'un PATH değişkenine eklenmiş olduğundan ve "python" komutuyla çağrılabildiğinden emin olmalısınız.

Daha sonra, bu "batch" dosyasını bir görev zamanlayıcısına ekleyerek, belirli bir zamanda çalışmasını sağlayabilirsiniz.

Görev zamanlayıcısı, Windows'ta bulunan bir araçtır ve belirli zaman aralıklarında belirli görevleri otomatik olarak çalıştırmanızı sağlar. Detayını (gerekirse) daha sonra yazarım.

Kolay gelsin
çok teşekkür ederim
 

Forum istatistikleri

Konular
128,666
Mesajlar
919,531
Kullanıcılar
450,688
Son üye
berkayayd

Yeni konular

Çevrimiçi üyeler

Geri
Üst