C#操作 word代码

推荐:http://www.cnblogs.com/roucheng/p/3521864.html

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

#region  读取word 
        /// <summary>
        /// 读取word所有文字内容(不包含表格)
        /// </summary>
        /// <returns>word中的字符内容(纯文本)</returns>
        public string ReadAllFromWord()
        {
            Word.ApplicationClass app = null;
            Word.Document doc = null;
            object missing = System.Reflection.Missing.Value;
            object FileName = m_FilePath;//@"E:/学习试验项目/ReadFromWordDoc/test.doc";
            object readOnly = true;
            object isVisible = false;
            try
            {
                app = new Word.ApplicationClass();
                doc = app.Documents.Open(ref FileName, ref missing, ref readOnly,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref isVisible, ref missing,
                    ref missing, ref missing, ref missing);

                string textString = "";
                //读取全部内容 何问起 hovertree.com
                textString = doc.Content.Text.Trim();
//                int ParCount = this.getParCount(doc);//段数
//                for (int i = 1 ; i <= ParCount ; i++)
//                {
//                    textString = textString + doc.Paragraphs[i].Range.Text.Trim();//doc.Content.Text.Trim();//
//                }
                textString = textString.Replace("/a","");    //替换空串为空。(word中/a代表空串,但在C#中,代表响铃 晕~~)否则显示控制台程序时会响
                textString = textString.Replace("/r","/n");    //替换回车为回车换行
                return textString;      
            }
            catch(Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (doc != null)
                {
                    try
                    {
                        doc.Close(ref missing, ref missing, ref missing);
                    }
                    catch
                    {}
                    doc = null;
                }
                if (app != null)
                {
                    try
                    {
                        app.Quit(ref missing, ref missing, ref missing);
                    }
                    catch
                    {}
                    app = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();

            }
        }
        #endregion

 

 

 

#region 追加写入word /// <summary>
        /// 追加写入word
        /// </summary>
        /// <param name="InsertText">需要写入的字符串</param>
        public void WriteToWord(string InsertText)
        {
            Word.ApplicationClass app = null;
            Word.Document doc = null;
            object missing = System.Reflection.Missing.Value;
            object FileName = m_FilePath;//@"E:/学习试验项目/ReadFromWordDoc/test.doc";
            object readOnly = false;
            object isVisible = false;
            try
            {
                app = new Word.ApplicationClass();
                doc = app.Documents.Open(ref FileName, ref missing, ref readOnly,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref isVisible, ref missing,
                    ref missing, ref missing, ref missing);
                //激活word文档
                doc.Activate();
                //追加到最后一段(段落是按照 /n 来作为标志的)
                doc.Paragraphs.Last.Range.Text = InsertText + "/n";//加个结束符(增加一段),否则再次插入的时候就成了替换.
                //保存
                doc.Save();
            }
            catch(Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (doc != null)
                {
                    try
                    {
                        doc.Close(ref missing, ref missing, ref missing);
                    }
                    catch
                    {}
                    doc = null;
                }
                if (app != null)
                {
                    try
                    {
                        app.Quit(ref missing, ref missing, ref missing);
                    }
                    catch
                    {}
                    app = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }

        #endregion

推荐:http://www.cnblogs.com/roucheng/p/3521864.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120361.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ip 淘宝地址库 好东西

    ip 淘宝地址库 好东西

    2021年10月17日
    42
  • 超级账本(hyperledger)介绍_以太坊上的账户类型有哪些

    超级账本(hyperledger)介绍_以太坊上的账户类型有哪些区块链组织-超级账本(Hyperledger)的简介

    2022年4月21日
    63
  • Protel99SE教程(一)——原理图封装

    Protel99SE教程(一)——原理图封装  今天我要讲解的是“如何在protel99se中创建一个原理图封装”,下面开始我们的操作:  第一步:新建“Schlib1.Lib”文件。  点击“File”下的“New”,弹出protel99se所能支持的所有文件格式,选中“SchematicLibraryDecument”,点击“OK”,新建“Schlib1.Lib”文件,如图1所示。图1 创建原理图…

    2022年5月30日
    37
  • 《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理

    《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理写在前面:恰逢期末复习,用了几天时间结合老师勾画的重点以及课件教材等,将全书重要内容做了个大整合。一方面便于自己复习记忆,另一方面po出来让更多需要的人也可以做个参考。同类梳理:《数据库系统概论》第五版(王珊版)全书知识梳理《计算机组成原理》第五版(唐朔飞考研版)全书知识梳理《数据结构》C语言版(清华严…

    2022年6月29日
    59
  • java链表数据结构是什么_java 链表数据结构

    java链表数据结构是什么_java 链表数据结构首先,单链表相对于队列的优势在于存储地址不是连续的,这样的意义在于,操作其中的某一个位置的元素时不需要对之前的其他元素都进行内存操作,大大的为我们的计算机减压了。下面直接进入正题:先要定义一个结点类,如下:Java代码publicclassNode{Nodenext;//下一个结点的引用Objectobj;//结点元素publicNode(Objectobj){this.obj=obj;…

    2022年5月27日
    34
  • SqlTransaction的解析

    SqlTransaction的解析SqlTransaction类表示要在SQLServer数据库中处理的Transact-SQL事务。无法继承此类应用程序通过在SqlConnection对象上调用BeginTransaction来创建SqlTransaction对象。对SqlTransactio

    2022年5月1日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号