XML in xlsx-Archiv speichern
Verfasst: Sonntag 3. Juni 2018, 17:46
Hallo Zusammen,
im folgenden würde ich gerne die veränderte xml.rels-Datei in einem zuvor entpacktem xlxs-Archiv speichern. Dabei habe ich zwei Porbleme, die ich nach längere Suche nicht lösen konnte.
1. Beim Speichern einer xml.rls Datei ist der Inhalt der Datei leer. Nur beim Speichern einer xml-Datei erfolgt das Speichern wie gewünscht.
2. Es ist mir nicht gelungen die Datei im geöffneten xlsx-Archiv zu speichern, da der interne Pfad des entpackten xlsx-Archiv nicht erkannt wird.
Ich würde mich über Hilfe sehr freuen. Vielen Dank.
import tkinter as tk
from zipfile import ZipFile
import xml.etree.ElementTree as ET
root = tk.Tk()
root.withdraw()
file_path = 'Z:/data.xlsx'
with ZipFile(file_path) as myzip:
my_file = myzip.open('xl/externalLinks/_rels/externalLink1.xml.rels')
tree = ET.parse(my_file)
root = tree.getroot()
for child_of_root in root:
ATarget=child_of_root.attrib
ATarget["Target"]="test1234.xlsx"
tree.write('xl/externalLinks/_rels/externalLink1test.xml.rls') # Hier ist der obenbeschriebene Fehler
im folgenden würde ich gerne die veränderte xml.rels-Datei in einem zuvor entpacktem xlxs-Archiv speichern. Dabei habe ich zwei Porbleme, die ich nach längere Suche nicht lösen konnte.
1. Beim Speichern einer xml.rls Datei ist der Inhalt der Datei leer. Nur beim Speichern einer xml-Datei erfolgt das Speichern wie gewünscht.
2. Es ist mir nicht gelungen die Datei im geöffneten xlsx-Archiv zu speichern, da der interne Pfad des entpackten xlsx-Archiv nicht erkannt wird.
Ich würde mich über Hilfe sehr freuen. Vielen Dank.
import tkinter as tk
from zipfile import ZipFile
import xml.etree.ElementTree as ET
root = tk.Tk()
root.withdraw()
file_path = 'Z:/data.xlsx'
with ZipFile(file_path) as myzip:
my_file = myzip.open('xl/externalLinks/_rels/externalLink1.xml.rels')
tree = ET.parse(my_file)
root = tree.getroot()
for child_of_root in root:
ATarget=child_of_root.attrib
ATarget["Target"]="test1234.xlsx"
tree.write('xl/externalLinks/_rels/externalLink1test.xml.rls') # Hier ist der obenbeschriebene Fehler