Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
"Technische Dokumentation" anhand aller verwendeten Funktionen?
"Technische Dokumentation" anhand aller verwendeten Funktionen?
Für eigen erstellte Tabellenkalkulationen, sollen wir technische Dokumentationen erstellen, welche gemäß Definition wohl auch eine Liste aller in Zellen verwendeten Funktionen sein kann.
Natürlich kenne ich die Möglichkeit über Ansicht -> Formel die jeweilige Funktion in einer Zelle anzeigen zu lassen, jedoch bekommt man so je nach Tabelle und länge der Funktion, keine vernünftigen Ausdrucke mehr hin.
Viel besser wäre eine Möglichkeit, als Anlage sämtliche verwendete Funktionen auf den einzelnen Tabellenblättern auszugeben, sozusagen:
Tabellenblatt | Zelle | Funktion
Im Prinzip also vergleichbar mit irgendwelchen Verzeichnissen in Writer, nur eben mit Calc.
Kann man so etwas mit einfachen Mitteln mit LibreOffice Calc bewerkstelligen?
Hylli
Natürlich kenne ich die Möglichkeit über Ansicht -> Formel die jeweilige Funktion in einer Zelle anzeigen zu lassen, jedoch bekommt man so je nach Tabelle und länge der Funktion, keine vernünftigen Ausdrucke mehr hin.
Viel besser wäre eine Möglichkeit, als Anlage sämtliche verwendete Funktionen auf den einzelnen Tabellenblättern auszugeben, sozusagen:
Tabellenblatt | Zelle | Funktion
Im Prinzip also vergleichbar mit irgendwelchen Verzeichnissen in Writer, nur eben mit Calc.
Kann man so etwas mit einfachen Mitteln mit LibreOffice Calc bewerkstelligen?
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Vielleicht ergänzend noch folgende Info, auf die ich bei meinen Recherchen gestoßen bin:
https://www.excel-ist-sexy.de/alle-formeln-auflisten/
So etwas (Variante 2 für alle Arbeitsblätter!) würde mir auch vorschweben, jedoch weiß ich nicht, wie man das Makro "übersetzt", so dass es LibreOffice auch versteht?
Hylli
https://www.excel-ist-sexy.de/alle-formeln-auflisten/
So etwas (Variante 2 für alle Arbeitsblätter!) würde mir auch vorschweben, jedoch weiß ich nicht, wie man das Makro "übersetzt", so dass es LibreOffice auch versteht?
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo Hylli,
ich habe ein Makro geschrieben.
Lege ein Tabellenblatt mit dem Namen Funktionen an, und führe das folgende Makro aus:
Dann sollten auf dem Tabellenblatt Funktionen in Spalte A die Adressen aller Formelzellen und in Spalte B die Formeln erscheinen.
ich habe ein Makro geschrieben.
Lege ein Tabellenblatt mit dem Namen Funktionen an, und führe das folgende Makro aus:
Code: Alles auswählen
sub show_Used_Functions()
oController = ThisComponent.CurrentController
oSheets = ThisComponent.Sheets
oTargetSheet = oSheets.getbyName("Funktionen")
oController.activeSheet = oTargetSheet
nCounter = 1
for i = 0 to oSheets.count - 1
oSheet = oSheets(i)
if not (oSheet.Name = "Funktionen") then
oCursor = oSheet.CreateCursor
oCursor.gotoendofusedArea(false)
nEndcolumn = oCursor.Rangeaddress.Endcolumn
nEndRow = oCursor.Rangeaddress.EndRow
for j = 0 to nEndcolumn
for k = 0 to nEndRow
oCell = oSheet.getCellbyPosition(j,k)
if oCell.Type = com.sun.star.table.CellContentType.FORMULA then 'enthält die Zelle eine Formel?
oTargetCellAbsoluteName = oTargetSheet.GetCellByPosition(0,nCounter)
oTargetCellFormula = oTargetSheet.GetCellByPosition(1,nCounter)
oTargetCellAbsoluteName.String = oCell.AbsoluteName
oTargetCellFormula.String = oCell.Formula
nCounter = nCounter + 1
endif
next k
next j
endif
next i
End Sub
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo
Eine Zelle enthält (optional ) eine Formel, in der Formel können dann nur Operatoren auftauchen , und|oder auch FUNKTIONEN in beliebiger Anzahl.
falls du nur die Formel brauchst gibts dafür eine Funktion und die heisst =FORMEL(…)
falls du aber wirklich jede einzelne verwendete Funktion dokumentieren willst wirds wohl etwas schwieriger.
Eine Zelle enthält (optional ) eine Formel, in der Formel können dann nur Operatoren auftauchen , und|oder auch FUNKTIONEN in beliebiger Anzahl.
falls du nur die Formel brauchst gibts dafür eine Funktion und die heisst =FORMEL(…)
falls du aber wirklich jede einzelne verwendete Funktion dokumentieren willst wirds wohl etwas schwieriger.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo
@F3k
Der Teil ist ja einfach: Wenns jetzt aber um die einzelnen Funktionen geht, ( alle violetten Namen im Screenshot ) wirds bisserl komplizierter!
@F3k
Der Teil ist ja einfach: Wenns jetzt aber um die einzelnen Funktionen geht, ( alle violetten Namen im Screenshot ) wirds bisserl komplizierter!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo Karolus,
Die Sache mit dem queryContentCells ist ja richtig gut!
Und ja, wenn Hylli die einzelnen Funktionen sucht wirds kompliziert.
Bin gespannt.
Gruß R
Die Sache mit dem queryContentCells ist ja richtig gut!
Und ja, wenn Hylli die einzelnen Funktionen sucht wirds kompliziert.
Bin gespannt.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo
@screenshot oben: Ich finde es witzig das die Ausgabe von print aus rich schon freiwillig die Funktionsnamen violett präsentiert.
@screenshot oben: Ich finde es witzig das die Ausgabe von print aus rich schon freiwillig die Funktionsnamen violett präsentiert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Einzeiler gefällig?:
Code: Alles auswählen
...
sAlleFormeln=""
for cell in formulas.Cells:
...
sAlleFormeln += ";" + cell.Formula
print("verwendete Funktionen:" + chr(10) + chr(10).join(set([x[:x.index("(")].replace(" ","") + "()" for x in ";".join(sAlleFormeln.replace('""','').split('"')[::2]).replace("(","(;").replace("=",";").replace("&",";").replace("+",";").replace("-",";").replace("*",";").replace("/",";").split(";") if "(" in x])))
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
... oder doch besser so
Code: Alles auswählen
...
sAlleFormeln=""
for cell in formulas.Cells:
...
sAlleFormeln += ";" + cell.Formula
print(strip_functionnames(sAlleFormeln))
def strip_functionnames(s):
# lösche alle ""-Strings aus dem Funktionsstring
s = ";".join(s.replace('""','').split('"')[::2])
# lösche alle Leerzeichen (steht im Einzeiler weiter hinten)
s = s.replace(" ","")
# trenne alle aufeinanderfolgenden Funktionen
s = s.replace("(","(;")
# ersetze alle syntaktischen Trenner
for r in "=,+-*/^<>":
s = s.replace(r,";")
#Suche alle Elemente mit einem Funktionsbeginn "("
l = [x[:x.index("(")] + "()" for x in s.split(";") if "(" in x]
# entferne doppelte Funktionen und Finish
return "verwendete Funktionen:" + chr(10) + chr(10).join(set(l))
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: "Technische Dokumentation" anhand aller verwendeten Funktionen?
Hallo
@gogo: so richtig pythonisch ist das noch nicht, aber deine Methode die literalen Strings zu entfernen ist genial.
in python musst du nicht chr(10) nehmen, dafür gibts escape-sequenzen \n
@gogo: so richtig pythonisch ist das noch nicht, aber deine Methode die literalen Strings zu entfernen ist genial.
in python musst du nicht chr(10) nehmen, dafür gibts escape-sequenzen \n
Code: Alles auswählen
import re
rex= re.compile(r"([A-ZÄÖÜ._0-9]+)\(")
alle = "\n".join(cell.Formula for cell in formulas.Cells)
func_string = "\n".join(f'{entry}()' for entry in sorted(set(rex.findall(alle))))
print(f"verwendete Funktionen:\n{func_string}")
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️