mikrocontroller.net

Forum: PC-Programmierung Programmierung Eingabemaske


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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.
Autor: Sebastian R. (sebastian_r569)
Datum:

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

Word.

Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: E. Macs (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: XML-Leserin (Gast)
Datum:

Bewertung
2 lesenswert
nicht 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.

Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: XML-Leserin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: XML-Leserin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: werists (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Christian S. (huzwitz)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Webhipster (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
@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.

Autor: DPA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
function download(data, filename, mime=null){
  var blob = new Blob([data], {type:mime});
  var temp_url = URL.createObjectURL(blob);
  var downloadlink = document.createElement("a");
  downloadlink.appendChild(document.createTextNode("Download"));
  downloadlink.style.fontSize = 0;
  downloadlink.download = filename;
  downloadlink.href = temp_url;
  document.body.appendChild(downloadlink);
  downloadlink.click();
  setTimeout(function(){
    document.body.removeChild(downloadlink);
    URL.revokeObjectURL(temp_url);
  },1000);
}

download("Hello World!", "hello.txt", "text/plain");

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Frank E. (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Poe Sie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.