2012-10-15 19 views
16

Ich arbeite an einer Webanwendung, wo Benutzer Microsoft Office-Dokumentdateien hochladen können. Im Moment läuft auf unserem Server Node.JS mit Express.js und wir sind auf Heroku gehostet. Aus diesem Grund glaube ich nicht, dass ich Programme wie Abiword oder Catdoc installieren kann. Ich kann die Dateiuploads verarbeiten, kann aber den Inhalt des Dokuments nicht analysieren.Parse Microsoft Office-Dateien in Node.JS

Wie kann ich den Inhalt der doc-Datei lesen? Die Informationen werden dann in eine Datenbank eingegeben. Es wäre schön, grundlegende Formatierungen (fett, kursiv, unterstrichen) beizubehalten, aber nicht unbedingt notwendig.

Antwort

7

Zwar gibt es nicht zu sein, etwas scheinen Sie mit NPM erhalten können, die direkt Wort tun wird, können Sie möglicherweise eine REST-API verwenden, um es über einen anderen Cloud-Service anzufordern. Zum Beispiel haben Saaspose (sie von den berühmten Aspose-Tools) öffentliche API für , Excel, PDF und andere. Sie listet node.js, javascript und Heroku-Unterstützung auf ihrer Seite auf.

EDIT:

Ich sehe, dass Saaspose jetzt Aspose for Cloud

Eine andere API, die etwas ähnliches behauptet genannt wird, ist Doxument

+0

Das ist perfekt! Ich danke dir sehr. – arknave

4

Office Paket: npm install office scheint zumindest ein Teil der Antwort zu liefern. Ich benutze es, um Excel-Dateien zu lesen, habe bisher keine Word-Dokumente ausprobiert.

+1

Hinweis: Dieses Paket scheint die Eingabe in HTML zu konvertieren, indem unoconv http://dag.wieers.com/home-made/unoconv/ (der OpenOffice-Konverter) ausgeführt wird. (Für Kalkulationstabellen scheint es, mit unoconv zu xls zu konvertieren, dann konvertiert xls-> html mit http://freecode.com/projects/xlhtml) – Nickolay

+2

und unoconv erfordert [libreoffice] (http://www.macupdate.com/app/mac/35446/libreoffice) .. wie tief geht das Kaninchenloch? Ich denke nicht, dass diese Lösung sehr gut skalieren würde, es sei denn, Sie möchten all diese Anwendungen auf all Ihren Servern installieren. Das ist eine ziemlich offene Aufgabe – abbood