Programmierung Eingabemaske

OP #5857725
Guten Tag,

ich stelle mich gerade folgenden Projekt.

Ein Programm das aus einer Eingabemaske besteht in den man gewisse 
Sachen auswählen kann. Die ausgewählten Sachen können dann nach 
vorgeschrieben Regeln in eine Word Datei exportiert werden.

Wie wäre die beste Vorgehensweise dafür bzw. in welche Sprache/Prozedur 
wäre dieses Projekt am einfachsten händelbar (z.B. HtmL)

Danke
Beitrag #5857726 wurde von einem Moderator gelöscht.
OP
Danke für die schnelle Antwort. Ist dies wirklich möglich

Das Projekt ist wie folgt ich wähle in einer Eingabemaske gewisse Module 
aus diese sollen dann in Word in Tabellen exportiert werden zum 
Beispiel.

Modul A erzeugt Tabelle 1 u Tabelle 2, wenn man dazu Modul B auswählt 
wird Tabelle 1 u Tabelle 2 verändert und eine neue Tabelle 3 erzeugt.

Natürlich soll eine gewisse Rahmenformatierung gegeben sein.

Danke
Gast
Ja, Word kann das.

Wenn da schon für Word als Text- ähh... Wort- ähh... 
Tabellenverabeitungsprogramm entschieden wurde, dann geschah dies doch 
auf Grund einer gewissen Übersicht dessen Möglichkeiten - nicht?

Einfach RTFM, ja?

Aber dann nicht schimpfen!
XML-Leserin schrieb:
> vorher unzippen hilft ungemein.

Bleibt nen Rudel XMLs, die sehr unübersichtlich sind. Wenn auch deutlich 
lesbarer und maschinenerstellbar.

Das alles richtig zu interpretieren und hinter her wieder zu 
"kompilieren" möchte ich trotzdem nicht.

PDF ginge sicherlich. Für vermutlich alle gebräuchlichen Sprachen wird 
es PDF-Bilbliotheken geben.

In dem Augenblick kann man sich dann aber aussuchen, was man kann und 
was man nimmt.


Bei GUI-Anwendungen nehme ich gerne Lazarus. Wenn man Pascal mag, sicher 
eine Möglichkeit.
Gast
Sebastian R. schrieb:
> XML-Leserin schrieb:
>> vorher unzippen hilft ungemein.
>
> Bleibt nen Rudel XMLs, die sehr unübersichtlich sind. Wenn auch deutlich
> lesbarer und maschinenerstellbar.

Einmal ins Form reinschreiben: "Bubbelbrabbelbla" und dann austauschen 
ist  nicht rocket science und geht mit Hausmitteln. Die verschiedenen 
Layer in PDF-Files will man ohne Libraries nicht behandeln (und 
verstehen schon gar nicht - braucht viel Aspirin und eine gute 
Polsterung gegen die Auswirkungen des Auf-die-Stirn-Klopfens).

# Filenamen finden
FILE=`grep -rl Bubbelbrabbelbla unzipped-word-file/`

# Editieren
rm -rf $FILE.old
mv $FILE $FILE.old
sed -e "s/Bubbelbrabbelbla/$wunschwert/" $FILE.old > $FILE

Das ist alles andere als "nahezu aussichtslos zu bearbeiten".
Gast
Rufus Τ. F. schrieb:
> Word kann mit VBA programmiert werden. Das bietet sich für eine
> derartige word-zentrische Aufgabenstellung an.

Mit Makro-Programmierung kann man viel machen.

Dummerweise wissen das die Kollegen aus der Emotet-Fraktion auch, 
deswegen möchte man Macros nach Möglichkeit deaktiviert lassen und den 
Usern einbleuen, dass sie diese Einstellung niemals antasten.
Gast
Christian S. schrieb:
> Wie wäre die beste Vorgehensweise dafür bzw. in welche Sprache/Prozedur
> wäre dieses Projekt am einfachsten händelbar (z.B. HtmL)

Am naheliegendsten sind  Word Makros mit VBA

Oder eine Programmiersprache die das Word-APi unterstützt btw. es ein 
Lib dafür gibt (e.g. Java und JWord bzw. VisualStudio mit dem 
DocumentIntzeface)

Ich würde aber die erste Variante wählen.
Persönliche Seite
werists schrieb:
> Oder eine Programmiersprache die das Word-APi unterstützt

Jede, die Automation beherrscht. Also auch VBScript oder JScript 
(auszuführen von CScript.exe resp. WScript.exe), nur können die keine 
brauchbaren GUIs anzeigen. Wenn aber Word/Excel/etc. gesteuert werden, 
kann man die auch für die Anzeige von GUIs verwenden.

Auf die gleiche Art und Weise lassen sich auch OpenOffice/LibreOffice 
ansteuern, nur ist deren Automations-API natürlich inkompatibel zur 
Word-Automations-API, weil das interne Objektmodell anders aufgebaut 
ist.
Christian S. schrieb:
> damit müsste man auf
> Daten zugreifen die ein Formular erstellen. Gemäß der Werte in der
> Eingabemaske

Mit einer turing-vollständigen Programmiersprache deiner Wahl. 
Idealerweise eine, für die es TCP/IP-Stacks und vielleicht auch gleich 
schon einen HTTP-Server gibt.

Damit müsstest du dann entsprechend der Anfragen vom Browser die 
passenden Antworten und Daten senden und beim Senden des Formulares die 
POST-Daten rausfischt und in dein PDF/Word-Doc verwurstet. Sofern du 
wirklich bei HTML für die Eingabemasken-Erstellung bleiben willst.
OP
Sebastian R. schrieb:
> Damit müsstest du dann entsprechend der Anfragen vom Browser die
> passenden Antworten und Daten senden und beim Senden des Formulares die
> POST-Daten rausfischt und in dein PDF/Word-Doc verwurstet. Sofern du
> wirklich bei HTML für die Eingabemasken-Erstellung bleiben willst.

Was wäre die einfache Variante bzw Programmierlösung ?
Gast
Wenn man nun wirklich HTML verwenden will und am Ende ein PDF braucht, 
bietet sich die integrierte "print to PDF"-Funktion der gaengigen 
Browser an. Also bastelt man seine Maske, blendet sie mit dem passenden 
CSS (Stichwort
1
@media print
) fuer den Druck aus und ersetzt das form-submit durch eine 
Javascriptfunktion, die die Seite entsprechend der Forminhalte 
gestaltet. Das geht alles offline und ohne HTTP-Backend.

"Export nach Word" ist natuerlich eine gegenlaeufige Anforderung, das 
bekommt man nicht abgedeckt. (VBA ist da schon der richtige Hinweis.) 
Ich bezweifle aber, dass der OP wirklich unbedingt Word verwenden muss, 
vielmehr moechte er ein (geheimes) Problem loesen und denkt, Word waere 
eine einfache Loesung.
Gast
Webhipster schrieb:
> "Export nach Word" ist natuerlich eine gegenlaeufige Anforderung, das
> bekommt man nicht abgedeckt.

Ist schon machbar, auch rein Clientseitig. Auf NPN mal nach word, docx, 
office, etc. suchen. Da findet man dann solchen kram: 
https://www.npmjs.com/package/officegen

Ich hab das nicht getestet, aber mit etwas glück bekommt man solches 
zeug manchmal mit browserify (http://browserify.org/) Browsertauglich 
(auch wenn ich sowas normalerweise vermeide).

Auch Dateien in JS im Browser generieren und herunterladen lassen ist 
möglich. Beispiel:
1
function download(data, filename, mime=null){
2
  var blob = new Blob([data], {type:mime});
3
  var temp_url = URL.createObjectURL(blob);
4
  var downloadlink = document.createElement("a");
5
  downloadlink.appendChild(document.createTextNode("Download"));
6
  downloadlink.style.fontSize = 0;
7
  downloadlink.download = filename;
8
  downloadlink.href = temp_url;
9
  document.body.appendChild(downloadlink);
10
  downloadlink.click();
11
  setTimeout(function(){
12
    document.body.removeChild(downloadlink);
13
    URL.revokeObjectURL(temp_url);
14
  },1000);
15
}
16

17
download("Hello World!", "hello.txt", "text/plain");
Gast
Christian S. schrieb:

> Was wäre die einfache Variante bzw Programmierlösung ?

Die einfachsten wurden alle schon genannt:

1) VBA
2) Irgendeine Sprache, die Word als Objekt verwenden kann

Einfacher als mit diesen beiden Varianten geht es einfach nicht. 
Web-Scheisse kannst du komplett droppen. Das führt nur viele zusätzliche 
Sofware-Ebenen ein, am Ende muss aber trotzdem wieder mit Word hantiert 
werden, weil Word halt offensichtlich das Ziel ist.

Dieser einfache Sachverhalt sollte doch auch für jemanden wie dich 
begreifbar sein, oder?
(Firma: Q3)
Office-Komponenten wie Word, Excel usw. kann man über einen Mechanismus, 
genannt "Office Automation" (per COM-Objekt) fernsteuern. Entsprechende 
Plugins bzw. APIs oder "Bindings" gibts für nahezu jeder 
Programmiersprache.

Ergo erstellst du deine Eingabemaske mitsamt der dagehörigen Logik in 
einer solchen Programmiersprache und erstellst anschließend per 
Office-Automation mit Word das gewünschte Dokument ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.