Advertisement
AntonioVillanueva

Ouvrir et afficher CSV

Feb 25th, 2025
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.10 KB | None | 0 0
  1. #Ouvrir et afficher un fichier CSV A.Villanueva
  2. import tkinter as tk
  3. from tkinter import ttk
  4. from tkinter import filedialog
  5. import csv
  6.  
  7. def abrir_csv():
  8.     ruta_archivo = filedialog.askopenfilename(filetypes=[("fichier CSV", "*.csv")])
  9.     if not ruta_archivo:
  10.         return
  11.  
  12.     with open(ruta_archivo, 'r', encoding='utf-8') as archivo_csv:
  13.         lector_csv = csv.reader(archivo_csv)
  14.         encabezados = next(lector_csv)
  15.         datos = list(lector_csv)
  16.  
  17.     # Clear Treeview
  18.     for item in tree.get_children():
  19.         tree.delete(item)
  20.  
  21.     # Configuration des colonnes de l'arborescence TreeView
  22.     tree["columns"] = encabezados
  23.     for col in encabezados:
  24.         tree.heading(col, text=col)
  25.         tree.column(col, anchor="w")
  26.  
  27.     # Insérer les données dans l'arborescence TreeView
  28.     for fila in datos:
  29.         tree.insert("", "end", values=fila)
  30.  
  31.     # Ajuster la largeur des colonnes au contenu
  32.     for col in encabezados:
  33.         tree.column(col, width=tk.font.Font().measure(max([row[encabezados.index(col)] for row in datos] + [col], key=len)))
  34.  
  35. # Paramètres de la fenêtre principale
  36. ventana = tk.Tk()
  37. ventana.title("Visionneuse CSV")
  38. ventana.geometry("800x600")
  39.  
  40. # Cadre pour contenir l'arborescence  TreeeView et la barre de défilement
  41. frame = ttk.Frame(ventana)
  42. frame.pack(fill="both", expand=True)
  43.  
  44. # Créer l'arborescence  TreeView avec des barres de défilement
  45. tree = ttk.Treeview(frame, show="headings")
  46. vsb = ttk.Scrollbar(frame, orient="vertical", command=tree.yview)
  47. hsb = ttk.Scrollbar(frame, orient="horizontal", command=tree.xview)
  48. tree.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)
  49.  
  50. # Placement de l'arborescence  TreeView et des barres de défilement
  51. tree.grid(column=0, row=0, sticky='nsew')
  52. vsb.grid(column=1, row=0, sticky='ns')
  53. hsb.grid(column=0, row=1, sticky='ew')
  54.  
  55. # redimensionnement
  56. frame.grid_columnconfigure(0, weight=1)
  57. frame.grid_rowconfigure(0, weight=1)
  58.  
  59. # Button pour ouvri CSV
  60. boton_abrir = ttk.Button(ventana, text="Ouvrir le fichier CSV", command=abrir_csv)
  61. boton_abrir.pack(pady=20)
  62.  
  63. # mainloop
  64. ventana.mainloop()
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement