Forum: PC-Programmierung Programmierung Eingabemaske


von Christian S. (huzwitz)


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.
von Sebastian R. (sebastian_r569)


Lesenswert?

Christian S. schrieb:
> in welche Sprache/Prozedur
> wäre dieses Projekt am einfachsten händelbar

Word.

von Christian S. (huzwitz)


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

von Sebastian R. (sebastian_r569)


Lesenswert?

Du brauchst dir ja nur mal ein Word-Dokument mit einem Texteditor 
angucken, dann weißt du, dass es nahezu aussichtslos ist, ein 
Word-Dokument ausserhalb von Word zu bearbeiten.

von E. Macs (Gast)


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!

von Christian S. (huzwitz)


Lesenswert?

Sebastian R. schrieb:
> Du brauchst dir ja nur mal ein Word-Dokument mit einem Texteditor
> angucken, dann weißt du, dass es nahezu aussichtslos ist, ein
> Word-Dokument ausserhalb von Word zu bearbeiten.

Ausgabe als PDF einfacher, dann PDF

von XML-Leserin (Gast)


Lesenswert?

Sebastian R. schrieb:
> Du brauchst dir ja nur mal ein Word-Dokument mit einem Texteditor
> angucken, dann weißt du, dass es nahezu aussichtslos ist, ein


vorher unzippen hilft ungemein.

von Sebastian R. (sebastian_r569)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Word kann mit VBA programmiert werden. Das bietet sich für eine 
derartige word-zentrische Aufgabenstellung an.

von XML-Leserin (Gast)


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".

von XML-Leserin (Gast)


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.

von werists (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Christian S. (huzwitz)


Lesenswert?

Wäre eine Variante mit html und css eine Eingabemaske zu programmieren, 
je nachdem welche Werte ich eingeben haben wird ein PDF Dokument 
erzeugt.

von Sebastian R. (sebastian_r569)


Lesenswert?

Christian S. schrieb:
> Wäre eine Variante mit html und css eine Eingabemaske zu programmieren,
> je nachdem welche Werte ich eingeben haben wird ein PDF Dokument
> erzeugt.

Nein. Jein. Naja.

HTML ist keine Programmiersprache und das Ergebnis ist kein Programm, 
das das leisten könnte, was du willst.

: Bearbeitet durch User
von Christian S. (huzwitz)


Lesenswert?

Also dann wie?

Mit html kann man ja eine Eingabemaske generieren, damit müsste man auf 
Daten zugreifen die ein Formular erstellen. Gemäß der Werte in der 
Eingabemaske

von Sebastian R. (sebastian_r569)


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.

: Bearbeitet durch User
von Christian S. (huzwitz)


Lesenswert?

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 ?

von Webhipster (Gast)


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.

von DPA (Gast)


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");

von c-hater (Gast)


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?

von Frank E. (Firma: Q3) (qualidat)


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 ...

von Poe Sie (Gast)


Lesenswert?

Hallo

Office Programmierung ging auch seit jeher mit MS.NET (C#, ...). Aber 
vielleicht nicht gerade für Anfänger geeignet.

https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/interop/walkthrough-office-programming

Oh, ich hab ein neues Lieblingsword. Das Word ist Bubbelbrabbelbla. Das 
Word ist reinste Posesie. Ein Gedicht mit nur einem Word.

MfG Poe Sie

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.