Programmierung Eingabemaske

OP #5857725
Lesenswert?

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 #5857745
Lesenswert?

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 #5857758
Lesenswert?

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!
#5857807
Lesenswert?

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 #5857827
Lesenswert?

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 #5857834
Lesenswert?

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 #5857837
Lesenswert?

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 #5857843
Lesenswert?

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.
#5857966
Lesenswert?

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.
Gast #5858019
Lesenswert?

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 #5858064
Lesenswert?

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 #5858391
Lesenswert?

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) #5859463
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren