zoukankan      html  css  js  c++  java
  • 用C#完全控制Word!

    Reference:
    http://msdn2.microsoft.com/zh-cn/library/kw65a0we(VS.80).aspx
    http://support.microsoft.com/kb/316384/zh-cn#top

    前提:
    导入COM库:Microsoft word 11.0 Object Library.
    引用里面就增加了:



    创建新Word

                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

    打开文档:
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                
    object fileName = @"E:\CCCXCXX\TestDoc.doc";
                oDoc 
    = oWord.Documents.Open(ref fileName,
                
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

    导入模板
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                
    object fileName = @"E:\XXXCCX\Test.doc";
                oDoc 
    = oWord.Documents.Add(ref fileName, ref oMissing,
                                
    ref oMissing, ref oMissing);


    .添加新表
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

                
    object start = 0;
                
    object end = 0;
                Word.Range tableLocation 
    = oDoc.Range(ref start, ref end);
                oDoc.Tables.Add(tableLocation, 
    34ref oMissing, ref oMissing);

    .表插入行
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

                
    object start = 0;
                
    object end = 0;
                Word.Range tableLocation 
    = oDoc.Range(ref start, ref end);
                oDoc.Tables.Add(tableLocation, 
    34ref oMissing, ref oMissing);

                Word.Table newTable 
    = oDoc.Tables[1];
                
    object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(
    ref beforeRow);

    .单元格合并
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

                
    object start = 0;
                
    object end = 0;
                Word.Range tableLocation 
    = oDoc.Range(ref start, ref end);
                oDoc.Tables.Add(tableLocation, 
    34ref oMissing, ref oMissing);

                Word.Table newTable 
    = oDoc.Tables[1];
                
    object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(
    ref beforeRow);

                Word.Cell cell 
    = newTable.Cell(11);
                cell.Merge(newTable.Cell(
    12));

    .单元格分离
                object oMissing = System.Reflection.Missing.Value;
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

                
    object start = 0;
                
    object end = 0;
                Word.Range tableLocation 
    = oDoc.Range(ref start, ref end);
                oDoc.Tables.Add(tableLocation, 
    34ref oMissing, ref oMissing);

                Word.Table newTable 
    = oDoc.Tables[1];
                
    object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(
    ref beforeRow);

                Word.Cell cell 
    = newTable.Cell(11);
                cell.Merge(newTable.Cell(
    12));

                
    object Rownum = 2;
                
    object Columnnum = 2;
                cell.Split(
    ref Rownum, ref  Columnnum);

    通过段落控制插入
                object oMissing = System.Reflection.Missing.Value;
                
    object oEndOfDoc = "\\endofdoc"/* \endofdoc is a predefined bookmark */

                
    //Start Word and create a new document.
                Word._Application oWord;
                Word._Document oDoc;
                oWord 
    = new Word.Application();
                oWord.Visible 
    = true;
                oDoc 
    = oWord.Documents.Add(ref oMissing, ref oMissing,
                    
    ref oMissing, ref oMissing);

                
    //Insert a paragraph at the beginning of the document.
                Word.Paragraph oPara1;
                oPara1 
    = oDoc.Content.Paragraphs.Add(ref oMissing);
                oPara1.Range.Text 
    = "Heading 1";
                oPara1.Range.Font.Bold 
    = 1;
                oPara1.Format.SpaceAfter 
    = 24;    //24 pt spacing after paragraph.
                oPara1.Range.InsertParagraphAfter();

    有部分是我的原创(50%吧)。

    现在我已经基本掌握了Word了。剩下大家只需要看看类库函数就懂了。哈哈哈
  • 相关阅读:
    Error: could not open `C:Program FilesJavajre6libi386jvm.cfg'
    异常:java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/app/userInfoMaint/getProvince.do'
    解析Java反射
    Cause: java.sql.SQLException: 无效的列索引
    Internet Explorer 无法打开该 Internet 站点,请求的站点不可用或无法找到
    解决The JSP specification requires that an attribute name is preceded by whitespace问题
    pl/sql的to_char和to_date
    oracle 在xml中批量插入,批量修改及多组条件查询
    时间转换模板
    Java网络编程从入门到精通(5):使用InetAddress类的getHostName方法获得域名
  • 原文地址:https://www.cnblogs.com/zc22/p/564620.html
Copyright © 2011-2022 走看看