c#word文档:1.创建空白Word文档及保存/2.添加页内容...

news2024/10/6 6:43:50
---创建空白Word文档 ---

(1)创建一个名为OfficeOperator的类库项目。引用操作Word的.NET类库

(2)定义用于操作Word的类WordOperator1。添加引用Microsoft.Office.Interop.Word命名空间。 

(3)为WordOperator声明两个操作Word文档的私有对象,在WordOperator的构造函数中创建WordApp, 定义用于创建Word文档的函数CreateWord.代码如下: 

using Microsoft.Office.Interop.Word;// 引入Microsoft.Office.Interop.Word命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace OfficeOperator1
{
    public class WordOperator1
    {
        
        //为WordOperator1声明两个操作Word文档的私有对象
            Application WordApp;                                   //Word应用对象
            Document WordDoc;                                      //Word文档对象
            public WordOperator1()  //在WordOperator1的构造函数中创建WordApp
            {
                WordApp = new Application();                           //创建Word应用对象
                WordApp.Visible = true;                                //创建完成后是否显示Word文档
            }
            //定义用于创建Word文档的函数CreateWord,代码如下:
            public void CreateWord()
            {
                WordDoc = WordApp.Documents.Add();                                     //创建Word文档对象
                WordDoc.PageSetup.Orientation = WdOrientation.wdOrientPortrait;        //横板还是竖板
                WordDoc.PageSetup.LeftMargin = WordApp.CentimetersToPoints(0.5f);      //左边距
                WordDoc.PageSetup.RightMargin = WordApp.CentimetersToPoints(0.5f);     //右边距
                WordDoc.PageSetup.TopMargin = WordApp.CentimetersToPoints(0.5f);       //上边距
                WordDoc.PageSetup.BottomMargin = WordApp.CentimetersToPoints(0.5f);    //下边距
                WordDoc.PageSetup.PageWidth = 400;                                     //页宽,单位:像素
                WordDoc.PageSetup.PageHeight = 600;                                    //页高,单位:像素
            }

        
    }
}

(4)创建一个名为CreateWord的控制台应用程序,为其添加对OfficeOperator1项目的引用。实例化WordOperator1对象,创建Word文档。 

启动CreateWord的控制台应用程序:创建了一个空白word文档

 -------保存Word文档-------

(1)在WordOperator类中定义用于保存Word文档的函数SaveWord

(2)在WordOperator类中定义关闭Word应用程序的函数QuitWord

using Microsoft.Office.Interop.Word;// 引入Microsoft.Office.Interop.Word命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace OfficeOperator1
{
    public class WordOperator1
    {
        
        //为WordOperator1声明两个操作Word文档的私有对象
            Application WordApp;                                   //Word应用对象
            Document WordDoc;                                      //Word文档对象
            public WordOperator1()  //在WordOperator1的构造函数中创建WordApp
            {
                WordApp = new Application();                           //创建Word应用对象
                WordApp.Visible = true;                                //创建完成后是否显示Word文档
            }
            //定义用于创建Word文档的函数CreateWord,代码如下:
            public void CreateWord()
            {
                WordDoc = WordApp.Documents.Add();                                     //创建Word文档对象
                WordDoc.PageSetup.Orientation = WdOrientation.wdOrientPortrait;        //横板还是竖板
                WordDoc.PageSetup.LeftMargin = WordApp.CentimetersToPoints(0.5f);      //左边距
                WordDoc.PageSetup.RightMargin = WordApp.CentimetersToPoints(0.5f);     //右边距
                WordDoc.PageSetup.TopMargin = WordApp.CentimetersToPoints(0.5f);       //上边距
                WordDoc.PageSetup.BottomMargin = WordApp.CentimetersToPoints(0.5f);    //下边距
                WordDoc.PageSetup.PageWidth = 400;                                     //页宽,单位:像素
                WordDoc.PageSetup.PageHeight = 600;                                    //页高,单位:像素
            }

        public void SaveWord(string fileName)
        {
            object FileName = fileName;                            //文档名称
            object FileFormat = WdSaveFormat.wdFormatDocument;     //Word文档保存格式
            object LockComments = false;                           //是否锁定批注
            object Password = "";                                  //打开Word文档密码
            object WritePassword = "";                             //修改Word文档密码
            object AddToRecentFiles = true;                       //是否将文档添加到近期使用的文件菜单中
            WordDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments, ref Password, ref AddToRecentFiles, ref WritePassword);        //保存Word文档
        }
        public void QuitWord()
        {
            ((_Document)WordDoc).Close();                          //关闭Word文档
            ((_Application)WordApp).Quit();                        //退出Word应用
        }
                                                 //退出Word应用程序

    }
    }

(3)将Word文档保存到当前目录,命名为“测试文档.doc”,然后退出Word应用程序。在CreateWord项目的main函数中添加代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOperator1;


namespace CreateWord1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            WordOperator1 word = new WordOperator1();
            word.CreateWord();         //创建Word文档
            word.SaveWord(Directory.GetCurrentDirectory() + "\\测试文档11.doc");//保存Word文档
            word.QuitWord();
        }
    }
}

本实例代码主要实现了将创建好的Word文档保存到当前目录下。首先在WordOperator中定义了用于保存Word文档的方法SaveWord,通过调用WordDoc的SaveAs方法将Word文档保存到指定的路径,该方法中的参数较多,其中第一个参数FileName为文档的路径,第二个参数FileFormat为文件的格式,第三个参数LockComments表示是否锁定批注,第四个参数Password表示打开该文档所需的密码,第五个参数AddToRecentFiles表示是否将该文档添加到近期使用的文件菜单中,第六个参数WritePassword为修改该文档所需的密码,后面的参数就不作详细的介绍了。
保存好Word文档后,通过调用WordDoc的Close方法关闭该文档,最后通过WordApp的Quit方法退出对Word文档的操作。
在CreateWord项目的main函数中调用WordOperator对象的SaveWord方法来将创建的文档保存到当前目录下,然后调用QuitWord方法退出对Word文档的操作。

启动CreateWord1的控制台应用程序:

解决方案总框架:

------添加页眉和页脚------

 【实现过程】
(1)在OfficeOperator项目的WordOperator类中定义为Word文档设置页眉的函数SetPageHeader,代码如下:

public void SetPageHeader(string Text)
     {
         WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;     //设置视图类型
         WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;//选定页眉
         WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(Text);//向页眉中添加文字
         WordApp.Selection.ParagraphFormat.Alignment =                          //设置居中对齐
             WdParagraphAlignment.wdAlignParagraphCenter;
         WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//选定主文档
     }

(2)在WordOperator类中定义为Word文档设置页脚的函数SetPageFooter,代码如下:
public void SetPageFooter(string Text)
     {
         WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;     //设置视图类型
         WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryFooter;//选定页脚
         WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(Text);   //向页脚中添加文字
         WordApp.Selection.ParagraphFormat.Alignment =                  //设置居中对齐
             WdParagraphAlignment.wdAlignParagraphCenter;
         WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; //选定主文档
     }

(3)在CreateWord项目的main函数中添加代码如下:
word.SetPageHeader("C#经典实例");                                  //添加页眉
     word.SetPageFooter("第17章  访问office");                              //添加页脚

启动CreateWord1的控制台应用程序:

.......\CreateWord1\bin\Debug   路径下打开文档,已添加页眉和页脚

------添加页码------

【实现过程】
(1)在OfficeOperator项目的WordOperator类中定义为Word文档添加页码的函数InsertPageNumber,代码如下:
public void InsertPageNumber(bool isFirstPage)
     {
         object Alignment = WdPageNumberAlignment.wdAlignPageNumberRight;//页码对齐方式
         object IsFirstPage = isFirstPage;                                      //是否从首页开始
         //对所有的页眉和页脚设置页码
         WdHeaderFooterIndex WdFooterIndex = WdHeaderFooterIndex.wdHeaderFooterPrimary;
         WordApp.Selection.Sections[1].Footers[WdFooterIndex].PageNumbers.Add
                        (ref Alignment, ref IsFirstPage);
  }
(2)在CreateWord项目的main函数中添加代码如下:
word.InsertPageNumber(true);                                          //添加页码

----文档中添加文字----

(1)在OfficeOperator项目的WordOperator类中定义为Word文档添加文字的函数InsertText,在Word文档中换行的函数NewLine

 (2)在CreateWord项目的main函数中添加代码如下

启动CreateWord1的控制台应用程序:

 

---文档中插入图片---

(1)在OfficeOperator项目的WordOperator类中定义向Word文档中插入图片的函数InsertPicture,代码如下:
public void InsertPicture(string FileName, int Width, int Height)
     {
         object LinkToFile = false;                                     //是否连接到文件
         object SaveWithDocument = true;                                //是否保存到文档中
         object Range = System.Reflection.Missing.Value;
         WordApp.Selection.ParagraphFormat.Alignment =                  //设置段落对齐方式
             WdParagraphAlignment.wdAlignParagraphCenter;
         InlineShape inlineShape = WordDoc.Application.Selection.InlineShapes.
             AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Range);  //添加图片
         if (Width != 0 || Height != 0)

       {
             inlineShape.Width = Width;                                 //设置图像宽度
             inlineShape.Height = Height;                               //设置图像高度
         } 
     }

(2)在CreateWord项目的main函数中添加代码如下:
word.InsertPicture(Directory.GetCurrentDirectory() + "\\189.png", 100, 75);
        //添加图片 

准备图片: 

启动CreateWord1的控制台应用程序: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1638208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

劳动节不劳动!陕西程序员手把手带你度假,领略祖国大好河山!

文章大纲 5 天 4 晚 陕西小环线错峰 放松度假遛娃天师堂石门栈道关山牧场草原九龙山温泉扶风温泉 想起一些旧事, 那时候搞IT比现在欢乐很多参考文献 秉承劳动节不劳动的一贯做法,节前我就带娃出来了,想着劳动节当天就能返回西安,不…

礼赞劳动节,致敬劳动者。节日随想:疾笔耕耘也是一种劳动方式。

马克思也快诞辰了206年了,恩格斯领导的第二国际通过的决议节日也迎来了134岁的生日了,我也继续在劳动的路上。 五月是值得纪念的日子,作为一名无上光荣的分子,无比仰慕崇拜的两位先驱前辈大胡子,其一 生于斯&#xff0…

数据可视化宝典:Matplotlib图形实战

在数据分析领域,图形化展示数据是非常重要的环节。Python中的matplotlib库是绘制各类图形的强大工具。本文将介绍如何使用matplotlib绘制折线图、直方图、饼图、散点图和柱状图等数据分析中常见的图形,并附上相应的代码示例,可以当初matplotl…

mac如何打开exe文件?如何mac运行exe文件 如何在Mac上打开/修复/恢复DMG文件

在macOS系统中,无法直接运行Windows系统中的.exe文件,因为macOS和Windows使用的是不同的操作系统。然而,有时我们仍然需要运行.exe文件,比如某些软件只有Windows版本,或者我们需要在macOS系统中运行Windows程序。 虽然…

Python中的观察者模式及其应用

观察者模式是设计模式之一,实现一对多依赖,当主题状态变化时通知所有观察者更新。在Python中,通过自定义接口或内置模块实现观察者模式,可提高程序灵活性和扩展性,尤其适用于状态变化时触发操作的场景,如事…

JavaSE——算法(2/2):查找算法-二分查找(前言、详细图解、代码部分)

目录 前言 详细图解 代码部分 前言 查找算法中,首要讨论的是基本查找,也就是顺序查找,在数据量特别大的时候,基本查找这种从前往后挨个找的形式,性能是很差的! 所以为了提高一些性能,产生了…

MyBatis中的#{} 和 ${}

目录 #{} 和 ${} 预编译 SQL 和 即时 SQL SQL注入 ${}的使用 #{} 和 ${}的使用 MyBatis参数赋值有两种方式,在上一篇文章中,一直使用 #{} 进行赋值,接下来,我们来使用 ${} 进行赋值,并观察 #{} 和 ${} 的区别 使用…

操作系统:线程

目录 前言: 1.线程 1.1.初识线程 1.2.“轻量化”进程 1.3.线程与进程 2.线程控制 2.1.pthread原生线程库 2.2.线程控制的接口 2.2.1.线程创建 2.2.线程退出|线程等待|线程分离|线程取消 2.3.pthread库的原理 2.4.语言和pthread库的关系 2.5.线程局部…

【leetcode】快慢指针相关题目总结

141. 环形链表 判断链表是否有环:如果链表中存在环,则在链表上不断前进的指针会一直在环里绕圈子,且不能知道链表是否有环。使用快慢指针,当链表中存在环时,两个指针最终会在环中相遇。 /*** Definition for singly-…

L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误。

一、首先这个问题,有一定概率出现(已确认) 1.使用后未将其断开或者频繁连接断开,导致注册表出现异常。(目前推断是这样的) 2.系统网卡驱动问题,需要进行网络重置,卸载网卡驱动后重新…

自动化机器学习——网格搜索法:寻找最佳超参数组合

自动化机器学习——网格搜索法:寻找最佳超参数组合 在机器学习中,选择合适的超参数是模型调优的关键步骤之一。然而,由于超参数的组合空间通常非常庞大,手动调整超参数往往是一项耗时且困难的任务。为了解决这个问题,…

基于Springboot的社区医疗服务系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的社区医疗服务系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

Unity LineRenderer 入门

概述: 如果你在你项目中需要一些渲染线条的效果,在3D场景中,渲染一个线条出来(比如路线图,激光射线,标记点)等效果,那这部分的学习一定不要错过喔。 Line Renderer(线条…

ECHARTS学习

坐标轴 option {xAxis: {type: category,data: [A, B, C]},yAxis: {type: value},series: [{data: [120, 200, 150],type: line}] }; 1、坐标轴的默认类型type是数值型,而xAxis指定了类目型的data,所以Echarts也能识别出这是类目型的坐标轴,…

第八篇:隔离即力量:Python虚拟环境的终极指南

隔离即力量:Python虚拟环境的终极指南 1 引言 在编程的多元宇宙中,Python语言犹如一颗闪耀的星辰,其魅力不仅仅在于简洁的语法,更在于其庞大而繁荣的生态系统。然而,随着应用的增长和复杂性的提升,开发者们…

手搓带头双向循环链表(C语言)

目录 List.h List.c ListTest.c 测试示例 带头双向循环链表优劣分析 List.h #pragma once#include <stdio.h> #include <stdlib.h> #include <assert.h>typedef int LTDataType;typedef struct ListNode {struct ListNode* prev;struct ListNode* next…

上位机图像处理和嵌入式模块部署(树莓派4b读写json数据)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;ini文件是用来进行配置的&#xff0c;数据库是用来进行数据存储的。那json是用来做什么的呢&#xff0c;json一般是用来做…

[HNOI2003]激光炸弹

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 注意从&#xff08;1,1&#xff09;开始存即可&#xff0c;所以每次输入x,y之后&#xff0c;要x,y。 因为m的范围最大为…

使用Neo4j和Langchain创建知识图谱

使用Neo4j和Langchain创建知识图谱 知识图谱是组织和整合信息的强大工具。通过使用实体作为节点和关系作为边缘&#xff0c;它们提供了一种系统的知识表示方法。这种有条理的表示有利于简化查询、分析和推理&#xff0c;使知识图在搜索引擎、推荐系统、自然语言处理和人工智能…

32.基础乐理-相对音感与绝对音感

相对音感的概念&#xff1a; 就是先给你一个音&#xff0c;告诉你这个音是X&#xff0c;然后再给一个Y音&#xff0c;你就能根据 X 音判断出这个 Y 音是什么&#xff0c;原理是在于你掌握的是 X 与 Y 之间相对距离的感觉&#xff0c;比如图1&#xff0c;弹两个键 先弹 小字一组…