4 votes

Comment lire un fichier ".doc" ou le convertir en ".docx" en utilisant ASP.NET

Voici deux problèmes auxquels je suis confronté, parmi ces deux problèmes l'un devrait être résolu pour que mon projet fonctionne.

Donc voici ceux-ci :

  1. Comment lire un fichier ".doc" sans utiliser l'automatisation Word ou un SDK payant comme Aspose.Words.

    (Si le premier n'est pas possible alors)

  2. Comment convertir un fichier ".doc" en ".docx"? sans utiliser l'automatisation Word ou un SDK payant comme Aspose.Words.

J'ai beaucoup cherché, j'ai trouvé une solution open source pour .docx seulement.

Cela doit être fait sur le serveur donc Word n'est pas installé là-bas.

6voto

0xA3 Points 73439

Vous voudrez peut-être essayer cette solution pure .NET :

b2xtranslator

Il ne nécessite pas l'installation d'une application Office sur le serveur.

3voto

Stephen Hewlett Points 1459

Jetez un œil à NPOI - il est écrit en .NET et est gratuit et open source. La feuille de route a l'intention de prendre en charge la création des nouveaux formats à l'avenir, mais pour l'instant vous pourriez l'utiliser pour lire l'ancien format et utiliser d'autres solutions pour écrire le nouveau, qui est une norme ouverte (voir ici la spécification MS).

2voto

Lasa Points 65

J'ai également rencontré le même problème. Si vous souhaitez convertir un fichier .doc en .docx, vous pouvez utiliser la bibliothèque Microsoft.Office.Interop.Word. Cela a fonctionné pour moi. Voici le code.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            Word._Application application = new Word.Application();
            object fileformat = Word.WdSaveFormat.wdFormatXMLDocument;
            DirectoryInfo directory = new DirectoryInfo(@"D:\abc");
            foreach (FileInfo file in directory.GetFiles("*.doc", SearchOption.AllDirectories))
            {
                if (file.Extension.ToLower() == ".doc")
                {
                    object filename = file.FullName;
                    object newfilename = file.FullName.ToLower().Replace(".doc", ".docx");
                    Word._Document document = application.Documents.Open(filename);

                    document.Convert();
                    document.SaveAs(newfilename, fileformat);
                    document.Close();
                    document = null;
                }
            }
            application.Quit();
            application = null;

        }
    }
}

Cela fonctionnera également pour vous.

1voto

Rajesh Subramanian Points 3722

Vous pouvez utiliser OpenXML SDK si vous souhaitez du code source ouvert. Sinon, il existe une option dans .NET en utilisant l'API Interop.Word. Vous pouvez ouvrir un fichier en utilisant cette API et le sauvegarder en tant que docx.

http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word(v=office.11).aspx

Mais cela nécessite que Word soit installé sur la machine.

1voto

Holf Points 1952

Il y avait un outil de conversion en masse de Microsoft qui faisait cela. J'ai trouvé une référence ici.

Sinon, je pense que vous n'avez pas d'autre choix que d'utiliser l'automatisation Word. Après tout, même OpenOffice a du mal à ouvrir certains fichiers .doc et à les convertir en .docx / OpenXML, ce qui implique que l'écriture de tout outil d'analyse soi-même va poser problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X