Wie kann ich in Python einen Loop einfügen der aus einer Exceltabelle ausliest?

Hallo würde mir gerne meine Vokalen mit Text to Speech vorlesen lassen, ich habe dafür eine Excel-Tabelle mit Englischen und Deutschen Vokabeln.

Mein Problem ist das ich nicht weiß wie man in Python eine automatische loop einfügt die dann von einem English/Deutschvokabel Paar zum nächsten geht und sie vorliest.

Weil so wie ich es jetzt habe muss ich bei jedem neuen Vokabel paar eine manuelle Variable erstellen und dann diese wieder in meinen Text to Speech Code einfügen.

Mein Code:

import openpyxl
import pyttsx3


# Give the location of the file
path = "test.xlsx"

# To open the workbook
# workbook object is created
wb_obj = openpyxl.load_workbook(path)

# Get workbook active sheet object
# from the active attribute
sheet = wb_obj.active

# Cell objects also have a row, column,
# and coordinate attributes that provide
# location information for the cell.

# Note: The first row or
# column integer is 1, not 0.

# Cell object is created by using
# sheet object's cell() method.
wort1en = sheet.cell(row=1, column=1)
wort1de = sheet.cell(row=1, column=2)


# Text to Speech
engine = pyttsx3.init()

# Voice IDs pulled from engine.getProperty('voices')
# These will be system specific
de_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_DE-DE_HEDDA_11.0"
en_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"

# Set properties _before_ you add things to say
engine.setProperty('rate', 160)    # Speed percent (can go over 100)
engine.setProperty('volume', 1)  # Volume 0-1
# Use female English voice
engine.setProperty('voice', en_voice_id)
engine.say(wort1en.value)


# Set properties _before_ you add things to say
engine.setProperty('rate', 150)    # Speed percent (can go over 100)
engine.setProperty('volume', 0.9)  # Volume 0-1
# Use female German voice
engine.setProperty('voice', de_voice_id)
engine.say(wort1de.value)


engine.runAndWait()

Meine Vokabelliste:

Bild zum Beitrag
Computer, programmieren, Informatik, Python
Frage zu Java/ Programmieren/ Verschlüsselung?

Ich habe eine sehr komplexe Frage würde mich aber extrem freuen wenn mir jemand helfen könnte, für die Schule soll ich ein kurzes Java Programm schreiben, bei mir kommt aber nicht heraus (kein Syntax error)

Hier die Angaben;

Aufgabe; Implementieren Sie die folgenden Punkte unten im Programmcode:

  1. Die Klasse CaeserCode soll zusätzlich ein Attribut offset besitzen, das die Buchstaben-Verschiebung der Caesar-Verschlüsselung angibt. Beispielsweise wird bei einem Offset (Verschiebung) von 3 aus einem A ein D. Belegen Sie das Attribut offset im Standardkonstruktor mit dem Wert 1.
  2. Bei der Caesar-Verschlüsselung sollen nur die 26 Buchstaben des lateinischen Alphabets verschlüsselt werden, alle anderen Sonderzeichen bleiben unverschlüsselt. Die Groß- und Kleinschreibung soll beibehalten werden.
  3. Vervollständigen Sie die Methode verschluesseln() in der Unterklasse CaesarCode.
  4. Verwenden Sie die Methoden: zeichenInMorseCodeUmwandeln(char zeichen) und morseCodeInZeichenUmwandeln(String morsecode) in den Methoden verschluesseln() und entschluesseln() der Unterklasse MorseCode.
  5. Für die Morse-Verschlüsselung sollen zwischen den Buchstaben ein Leerzeichen und zwischen den Wörtern fünf Leerzeichen eingefügt werden. Die Eingabe kann einfach in Großbuchstaben umgewandelt werden (mit der Methode toUpperCase()).
  6. Vervollständigen Sie die Methode verschluesseln() in der Unterklasse MorseCode.
  7. Die Tests prüfen nur das Verschlüsseln ab. Das Vervollständigen der Methode entschluesseln() ist eine Zusatzaufgabe.

Bereits zur verfügung gestellter Code siehe kommentare

Bild zum Beitrag
Computer, programmieren, Java, Code, Informatik
Java JTable; Tabelle begrenzen?

Mein Problem ist das die Tabelle zu weit nach unten geht.

table.setSize(); habe ich schon versucht, funktioniert aber nicht.

Hier der Code:

JPanel profilname_panel = new JPanel();

      String[][] data = {
        { "test", ""},
        { "", ""},
        { "", ""},
        { "", ""},
        { "", ""},
        { "", ""},
     };
     String[] rows = { "Name", "Picture"};
     JTable table = new JTable(data, rows);    
     table.setDefaultEditor(Object.class, null);
     table.setCellSelectionEnabled(false);
     table.setFocusable(false);
     table.setAutoscrolls(false);
     table.setRowHeight(table.getRowHeight() + 60);
     profilname_panel.setLocation(20,20);
     profilname_panel.setSize(550,180);
     profilname_panel.add(new JScrollPane(table));
     profilname_speichern.add(profilname_panel);


       profilname_speichern.setVisible(true);

Das sieht dann so aus. Ich möchte aber das, die Tabelle nur so groß ist und man nach unten scrollen kann. Weil wenn ich jetzt das JPanel größer mache, dann geht es richtig. Ist nur nicht das was ich möchte.

Eigentlich soll es so wie auf den ersten Bild aussehen, mit den Unterschied das die Tabelle, diese größe hat und man dadurch runterscrollen kann.

Wie kann man die größe der Tabelle ändern?

Bild zum Beitrag
Computer, Java, Informatik, Java Swing

Meistgelesene Beiträge zum Thema Informatik