bu kodları script da yazdığım yerde mi yazmam gerekiyor python için olan yöntemiEğ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ımEğ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.
Batch dosyası kullanarak da bu işlemi gerçekleştirebiliriz.bunu script ile yapamaz mıyım
elinizde bunun örneği var mı rica etsem ilk defa dediğinizi yapacağım python kullanmadım daha önceBatch 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
çok teşekkür ederimMesela:
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