Jedes Unternehmen, für das ich bis heute gearbeitet habe, battle es: die belastbare MS Excel.
Excel wurde erstmals 1985 veröffentlicht und ist bis heute stark geblieben. Es hat den Aufstieg der relationalen Datenbanken, die Entwicklung vieler Programmiersprachen, das Web mit seiner unendlichen Anzahl von On-line -Anwendungen überlebt, und schließlich überlebt es auch die Ära der KI.
Puh!
Haben Sie Zweifel daran, wie belastbar Excel ist? Ich tu nicht.
Ich denke, der Grund dafür ist es Praktikabilität, um ein Dokument schnell zu beginnen und zu manipulieren. Denken Sie über diese Scenario nach: Wir arbeiten in einem Assembly und plötzlich teilt die Führung eine CSV -Datei und fragt nach einer schnellen Berechnung oder einigen wenigen berechneten Zahlen. Jetzt sind die Optionen:
1. Öffnen Sie eine IDE (oder ein Notizbuch) und beginnen Sie mit dem Codieren wie verrückt, um eine einfache Matplotlib -Grafik zu generieren.
2. Open Energy BI, importieren Sie die Daten und erstellen Sie einen Bericht mit dynamischen Grafiken.
3. Öffnen Sie den CSV in Excel, schreiben Sie ein paar Formeln und erstellen Sie eine Grafik.
Ich kann nicht für Sie sprechen, aber oft gehe ich für Possibility 3. vor, vor allem, weil Excel-Dateien mit allem kompatibel sind, leicht gemeinsam nutzbar und anfängerfreundlich sind.
Ich sage all dies als Einführung, um meinen Standpunkt zu verdeutlichen, dass ich nicht glaube, dass Excel -Dateien bald mit der schnellen Entwicklung von KI verschwinden. Viele werden das lieben, viele werden das hassen.
Meine Aktion hier bestand additionally darin, KI zu nutzen, um Excel -Dateien besser dokumentiert zu machen. Eine der Hauptbeschwerden von Datenteams über Excel ist der Mangel an Greatest Practices und Reproduzierbarkeit, da die Namen der Spalten Namen und Datentypen haben können, aber keine Dokumentation.
Ich habe additionally einen KI -Agenten erstellt, der die Excel -Datei liest und diese kleine Dokumentation erstellt hat. So funktioniert es:
- Die Excel -Datei wird in CSV konvertiert und in das große Sprachmodell (LLM) eingespeist.
- Der AI -Agent generiert das Datenwörterbuch mit Spalteninformationen (variabler Title, Datentyp, Beschreibung).
- Das Datenwörterbuch wird als Kommentare zum Header der Excel -Datei hinzugefügt.
- Ausgabedatei mit Kommentaren gespeichert.
OK. Praktisch jetzt. Lassen Sie uns das in diesem Tutorial erledigen.
Code

Wir werden zunächst eine virtuelle Umgebung einrichten. Erstellen a venv
Mit dem Werkzeug Ihrer Wahl wie Poesie, Python Venv, Anaconda oder UV. Ich magazine UV wirklich, da es meiner Meinung nach am schnellsten und einfachsten ist. Wenn Sie UV installiert haben (5)Öffnen Sie ein Terminal und erstellen Sie Ihre venv
.
uv init data-docs
cd data-docs
uv venv
uv add streamlit openpyxl pandas agno mcp google-genai
Lassen Sie uns nun die erforderlichen Module importieren. Dieses Projekt wurde mit Python 3.12.1 erstellt, aber ich glaube, Python 3.9 oder höher könnte den Trick bereits tun. Wir werden verwenden:
- Agno: Für die KI -Agentenverwaltung
- Openpyxl: Für die Manipulation von Excel -Dateien
- Straffung: Für die Entrance-Finish-Schnittstelle.
- Pandas, OS, JSON, Dedent und Google Genai als Assist -Module.
# Imports
import os
import json
import streamlit as st
from textwrap import dedent
from agno.agent import Agent
from agno.fashions.google import Gemini
from agno.instruments.file import FileTools
from openpyxl import load_workbook
from openpyxl.feedback import Remark
import pandas as pd
Großartig. Der nächste Schritt besteht darin, die Funktionen zu erstellen, die wir mit den Excel -Dateien verarbeiten und den AI -Agenten erstellen müssen.
Beachten Sie, dass alle Funktionen detailliert sind Docstrings. Dies ist beabsichtigt, da LLMs Docstrings verwenden, um zu wissen, was eine bestimmte Funktion tut, und zu entscheiden, ob sie sie als Werkzeug verwenden oder nicht.
Wenn Sie additionally Python -Funktionen als Instruments für einen KI -Agenten verwenden, sollten Sie detaillierte Dokals verwenden. Heutzutage mit kostenlosen Kopiloten wie Windsurf (6) Es ist noch einfacher, sie zu erstellen.
Konvertierung der Datei in CSV konvertieren
Diese Funktion wird:
- Nehmen Sie die Excel -Datei und lesen Sie nur die ersten 10 Zeilen. Dies reicht für uns aus, um an die LLM zu senden. Wenn wir dies tun, verhindern wir auch, dass zu viele Token als Enter gesendet und dieser Agent zu teuer wird.
- Speichern Sie die Datei als CSV, um sie als Eingabe für den AI -Agenten zu verwenden. Das CSV -Format ist für das Modell leichter, da es sich um eine von Kommas getrennte Texte handelt. Und wir wissen, dass LLMs glänzen, die mit Textual content arbeiten.
Hier ist die Funktion.
def convert_to_csv(file_path:str):
"""
Use this device to transform the excel file to CSV.
* file_path: Path to the Excel file to be transformed
"""
# Load the file
df = pd.read_excel(file_path).head(10)
# Convert to CSV
st.write("Changing to CSV... :leftwards_arrow_with_hook:")
return df.to_csv('temp.csv', index=False)
Lass uns weitermachen.
Erstellen des Agenten
Die nächste Funktion erstellt den AI -Agenten. Ich benutze Agno
(1), da es sehr vielseitig und einfach zu bedienen ist. Ich habe auch das Modell ausgewählt Gemini 2.0 Flash
. Während der Testphase battle dies das bester Modell, das die Datendokumente generierte. Um es zu verwenden, benötigen Sie einen API -Schlüssel von Google. Vergessen Sie nicht, einen hier zu bekommen (7).
Die Funktion:
- Empfängt die CSV -Ausgabe aus der vorherigen Funktion.
- Übergeht den AI -Agenten, der das Datenwörterbuch mit Spaltenname, Beschreibung und Datentyp erzeugt.
- Beachten Sie, dass die
description
Argument ist die Aufforderung für den Agenten. Machen Sie es detailliert und präzise. - Das Datenwörterbuch wird als speichert als
JSON
Datei mit einem Software aufgerufenFileTools
Das kann Dateien lesen und schreiben. - Ich habe eingerichtet
retries=2
So können wir bei einem ersten Versuch jeden Fehler umgehen.
def create_agent(apy_key):
agent = Agent(
mannequin=Gemini(id="gemini-2.0-flash", api_key=apy_key),
description= dedent("""
You're an agent that reads the temp.csv dataset introduced to you and
based mostly on the title and knowledge sort of every column header, decide the next info:
- The info varieties of every column
- The outline of every column
- The primary column numer is 0
Utilizing the FileTools supplied, create a knowledge dictionary in JSON format that features the under info:
{<ColNumber>: {ColName: <ColName>, DataType: <DataType>, Description: <Description>}}
If you're unable to find out the information sort or description of a column, return 'N/A' for that column for the lacking values.
"""),
instruments=( FileTools(read_files=True, save_files=True) ),
retries=2,
show_tool_calls=True
)
return agent
OK. Jetzt brauchen wir eine andere Funktion, um das Datenwörterbuch in der Datei zu speichern.
Hinzufügen von Datenwörterbuch zum Header der Datei
Dies ist die letzte Funktion, die erstellt wurde. Es wird:
- Holen Sie sich das Datenwörterbuch
json
Aus dem vorherigen Schritt und der ursprünglichen Excel -Datei. - Fügen Sie das Datenwörterbuch als Kommentare zum Header der Datei hinzu.
- Speichern Sie die Ausgabedatei.
- Sobald die Datei gespeichert ist, wird eine Obtain -Schaltfläche angezeigt, damit der Benutzer die geänderte Datei abgerufen hat.
def add_comments_to_header(file_path:str, data_dict:dict="data_dict.json"):
"""
Use this device so as to add the information dictionary {data_dict.json} as feedback to the header of an Excel file and save the output file.
The perform takes the Excel file path as argument and provides the {data_dict.json} as feedback to every cell
Begin counting from column 0
within the first row of the Excel file, utilizing the next format:
* Column Quantity: <column_number>
* Column Title: <column_name>
* Knowledge Kind: <data_type>
* Description: <description>
Parameters
----------
* file_path : str
The trail to the Excel file to be processed
* data_dict : dict
The info dictionary containing the column quantity, column title, knowledge sort, description, and variety of null values
"""
# Load the information dictionary
data_dict = json.load(open(data_dict))
# Load the workbook
wb = load_workbook(file_path)
# Get the lively worksheet
ws = wb.lively
# Iterate over every column within the first row (header)
for n, col in enumerate(ws.iter_cols(min_row=1, max_row=1)):
for header_cell in col:
header_cell.remark = Remark(dedent(f"""
ColName: {data_dict(str(n))('ColName')},
DataType: {data_dict(str(n))('DataType')},
Description: {data_dict(str(n))('Description')}
"""),'AI Agent')
# Save the workbook
st.write("Saving File... :floppy_disk:")
wb.save('output.xlsx')
# Create a obtain button
with open('output.xlsx', 'rb') as f:
st.download_button(
label="Obtain output.xlsx",
knowledge=f,
file_name='output.xlsx',
mime='utility/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
)
OK. Der nächste Schritt besteht darin, all dies auf einem streamlosen Entrance-Finish-Skript zusammenkleben zu können.
Straffes Entrance-Finish
In diesem Schritt hätte ich eine andere Datei für das Entrance-Finish erstellen und die Funktionen dort importieren können. Aber ich habe mich entschlossen, dieselbe Datei zu verwenden, additionally beginnen wir mit dem berühmten:
if __name__ == "__main__":
Zunächst einige Zeilen, um die in der Webanwendung angezeigte Seite und Nachrichten zu konfigurieren. Wir werden den Inhalt verwenden centered
Auf der Seite, und es gibt einige Informationen darüber, wie die App funktioniert.
# Config web page Streamlit
st.set_page_config(structure="centered",
page_title="Knowledge Docs",
page_icon=":paperclip:",
initial_sidebar_state="expanded")
# Title
st.title("Knowledge Docs :paperclip:")
st.subheader("Generate a knowledge dictionary on your Excel file.")
st.caption("1. Enter your Gemini API key and the trail of the Excel file on the sidebar.")
st.caption("2. Run the agent.")
st.caption("3. The agent will generate a knowledge dictionary and add it as feedback to the header of the Excel file.")
st.caption("ColName: <ColName> | DataType: <DataType> | Description: <Description>")
st.divider()
Als nächstes richten wir die Seitenleiste ein, in der der Benutzer seine API -Style von Google eingeben kann und a .xlsx
Datei zu ändern.
Es gibt eine Schaltfläche, um die Anwendung auszuführen, eine andere zum Zurücksetzen des App -Standing und eine Fortschrittsleiste. Nichts Besonderes.
with st.sidebar:
# Enter your API key
st.caption("Enter your API key and the trail of the Excel file.")
api_key = st.text_input("API key: ", placeholder="Google Gemini API key", sort="password")
# Add file
input_file = st.file_uploader("File add",
sort='xlsx')
# Run the agent
agent_run = st.button("Run")
# progress bar
progress_bar = st.empty()
progress_bar.progress(0, textual content="Initializing...")
st.divider()
# Reset session state
if st.button("Reset Session"):
st.session_state.clear()
st.rerun()
Einmal der laufen Die Schaltfläche wird geklickt. Sie löst den Relaxation des Codes aus, um den Agenten auszuführen. Hier ist die Abfolge der ausführten Schritte:
- Die erste Funktion wird aufgerufen, um die Datei in CSV zu transformieren
- Der Fortschritt ist in der Fortschrittsleiste registriert.
- Der Agent wird erstellt.
- Fortschrittsbalken aktualisiert.
- Eine Eingabeaufforderung wird in den Agenten eingereicht, um die zu lesen
temp.csv
Datei, erstellen Sie das Datenwörterbuch und speichern Sie die Ausgabe aufdata_dictionary.json
. - Das Datenwörterbuch wird auf dem Bildschirm gedruckt, sodass der Benutzer sehen kann, was generiert wurde, während es in der Excel -Datei gespeichert wird.
- Die Excel -Datei wird geändert und gespeichert.
# Create the agent
if agent_run:
# Convert Excel file to CSV
convert_to_csv(input_file)
# Register progress
progress_bar.progress(15, textual content="Processing CSV...")
# Create the agent
agent = create_agent(api_key)
# Begin the script
st.write("Working Agent... :runner:")
# Register progress
progress_bar.progress(50, textual content="AI Agent is working...")
# Run the agent
agent.print_response(dedent(f"""
1. Use FileTools to learn the temp.csv as enter to create the information dictionary for the columns within the dataset.
2. Utilizing the FileTools device, save the information dictionary to a file named 'data_dict.json'.
"""),
markdown=True)
# Print the information dictionary
st.write("Producing Knowledge Dictionary... :page_facing_up:")
with open('data_dict.json', 'r') as f:
data_dict = json.load(f)
st.json(data_dict, expanded=False)
# Add feedback to header
add_comments_to_header(input_file, 'data_dict.json')
# Take away momentary recordsdata
st.write("Eradicating momentary recordsdata... :wastebasket:")
os.take away('temp.csv')
os.take away('data_dict.json')
# If file exists, present success message
if os.path.exists('output.xlsx'):
st.success("Accomplished! :white_check_mark:")
os.take away('output.xlsx')
# Progress bar finish
progress_bar.progress(100, textual content="Accomplished!")
Das battle’s. Hier ist eine Demonstration des Agenten in Aktion.

Schönes Ergebnis!
Versuchen Sie es
Sie können die bereitgestellte App hier ausprobieren: https://excel-datadocs.streamlit.app/
Bevor du gehst
Meiner bescheidenen Meinung nach verschwinden Excel -Dateien nicht so schnell. Wenn wir sie lieben oder hassen, müssen wir uns eine Weile bei ihnen halten.
Excel -Dateien sind vielseitig, einfach zu handhaben und zu teilen, daher sind sie immer noch sehr nützlich für die Routine advert hoc Aufgaben bei der Arbeit.
Jetzt können wir AI jedoch nutzen, um uns zu helfen, diese Dateien zu verarbeiten und sie besser zu machen. Künstliche Intelligenz Berührt so viele Punkte unseres Lebens. Die Routine und die Werkzeuge bei der Arbeit sind nur ein weiterer.
Nutzen wir die KI und arbeiten Sie jeden Tag clever!
Wenn Ihnen dieser Inhalt gefallen hat, finden Sie mehr von meiner Arbeit in meiner Web site und in meiner GitHub, die unten geteilt werden.
Github -Repository
Hier ist das Github -Repository für dieses Projekt.
https://github.com/gurezende/data-dictionary-genai
Finde mich
Sie können mehr über meine Arbeit auf meiner Web site finden.
Referenzen
(1. Agno -Dokumente) https://docs.agno.com/inTroduction/brokers
(2. Openpyxl Dokumente) https://openpyxl.readthedocs.io/en/steady/index.html
(3. streamlit -docs) https://docs.streamlit.io/
(4. Datendocs Internet App) https://excel-datadocs.streamlit.app/
(5. UV installieren) https://docs.astral.sh/uv/getting-started/set up/
(6. Windsurf -Codierung Copilot) https://windsurf.com/vscode_tutorial
(7. Google Gemini API -Schlüssel) https://ai.google.dev/gemini-api/docs/api-key