要养成写博客的好习惯 ,啦啦啦啦。。。。。。

C# doc docx 互转 实现 , 因为我本身搞文字文档的啊 ,经常有时候会需要Word 文件互转 ,
大家知道Doc 和Docx
区别是非非非非非非非非非常大的了 ,一个是单纯二进制文件 ,一个可以说是xml 一堆文件的集合 。

这个odt 不常用 ,解决有时候 Docx 还是解决不了的时候 就转 odt 了 , 终结大招 。。。


public static string saveAsWord(string sourcePath , string fileExt = null)
        {



            string filePath = Path.GetDirectoryName(sourcePath);
            string ext = fileExt != null ? fileExt : Path.GetExtension(sourcePath);
            string sourceFileName = Path.GetFileNameWithoutExtension(sourcePath);


            Application app = null;
            Document document = null;
            object missing = null;
            string targetFilePath = null;
            object fileName = null;
            try
            {
                app = new Application();
                document = app.Documents.Open(sourcePath);

                missing = System.Reflection.Missing.Value;
                targetFilePath = filePath + @"\" + sourceFileName  + ext;

                fileName = targetFilePath;
                // 默认docx
                WdSaveFormat f = WdSaveFormat.wdFormatDocumentDefault;
                if (ext.Equals(".doc") )
                {
                    f = WdSaveFormat.wdFormatDocument97;
                }
                else if(ext.Equals(".odt"))
                {
                    f = WdSaveFormat.wdFormatOpenDocumentText;
                }

                document.SaveAs(ref fileName, f, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);


                //document.Close();
                //app.Quit();

                 if (document != null)
                {
                    document.Close();
                    document = null;
                }
                if (app != null)
                {
                    app.Quit();
                    app = null;
                }


                return targetFilePath;
            }
            catch (Exception e)
            {
                if(null != e)
                {
                    Console.WriteLine("----" + e.ToString());
                }
                return null;

            }


        }