arkadaşlar treeview üzerinden çıkan sonuçları excel’e nasıl döökümente edebilirim…
Fikri olan var mı?
arkadaşlar treeview üzerinden çıkan sonuçları excel’e nasıl döökümente edebilirim…
Fikri olan var mı?
Sizinle bir örnek paylaşayım, bunu biraz inceleyin isterseniz.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import xlwt
import tkinter as tk
from tkinter.ttk import Treeview
master = tk.Tk()
# Treeview'de kullanılacak sütunları tanımlayalım.
sutunlar = ["İsim", "Soy İsim"]
# Sütunlara eklenecek verileri tanımlayalım.
veriler = [
["Ali", "Aslan",],
["Veli", "Çalışkan"]
]
# Treeview'i oluşturalım.
treeview = Treeview(master=master, show="headings", columns=[f"#{i + 1}" for i in range(len(sutunlar))])
for i, j in enumerate(sutunlar):
treeview.heading(f"#{i + 1}", text=j)
treeview.pack()
# Treeview'e verileri ekleyelim.
num = 0
for i in veriler:
treeview.insert("", num, values=[k for k in i])
num += 1
# Şimdi excel tablosuna bu treeview'deki verileri eklemek için
# bir düğme tanımlayalım.
button = tk.Button(master=master, text="Excel'e Ekle")
button.pack()
# Düğmenin komutunu tanımlayalım.
def command():
excel_dosyasi = xlwt.Workbook()
excel_sayfasi = excel_dosyasi.add_sheet("Sayfa1")
for i, j in enumerate(treeview.get_children()):
# Sütun isimlerini ekleyelim.
excel_sayfasi.write(0, i, treeview.heading(i)["text"])
# Değerleri alalım.
values = treeview.item(j)["values"]
# Her bir satırın verilerine göre ekleme işlemi yapılacak.
for k, m in enumerate(values):
excel_sayfasi.write(i + 1, k, m)
# Excel dosyasını kaydedelim.
excel_dosyasi.save("test.xlsx")
button.configure(command=command)
master.mainloop()
Cevabınız için teşekkür ederim…Soeuun çözümüyle alaklı ‘xlsxwriter’ modülünü kullanmaya karar verdim
yalnız name ‘xlsxwriter’ is not defined hatası alıyorumm
Burdan write_column ile işi bağlarım diye düşündüm
Ben genellike xlwt modülünü kullanıyorum, siz bilirsiniz.
oradan da write_column kullanamıyorum
write() fonksiyonunu kullanacaksınız, isterseniz yukarıdakı örneğe bakın.
write yazınca da sütun olarak yazmıyor…tek değer halinde yazıyor…direk write_column demem lazım
Bu fonksiyonla istediğiniz sütun ve satıra yazı yazabilirsiniz.
write(satir, sütun, değer)
sheet.write(1,0,[3,6,1]) yazıyorummm
yalnız
Unexpected data type <class ‘int’> hatası veriyor
[3,6,1] şeklinde yazamazsınız işte.
Eğer bunlar aynı satırdaki ardışık sütunlara yazılacaksa şöyle deneyin:
for i, j in enumerate([3, 6, 1]):
sheet.write(1, i, j)
Kardeşim Allah Razı olsun…uzun zamandır gayret ettiğim mesele halloldu…Teşekkür ederim
Saveasfiledialog ile nasıl yapabilirim?