精华内容
下载资源
问答
  • 利用VBA代码将一个word文档按页分割成多个word文档
  • 如何将一个word文档按页分割成多个word文档,很有参考价值
  • 可最近有个新的需求,要在导出的word文件第一页加上首页内容,首页内容是另一个word文件的内容。我试过该word 转为xml,然后用变量来接收节点里面的内容,在模板位置中使用该变量,可是不起作用。不知道这种 需求有...
  • 我最近喜欢折腾Office软件相关的东西,想把很多Office软件提供的功能用...这篇文章的主要目的是记录如何用C#来实现复制一个Word文档的部分或全部内容到另一个Word文档,废话不多说,下面开始。第一部分:复制部分内容:

    我最近喜欢折腾Office软件相关的东西,想把很多Office软件提供的功能用.NET来实现,如果后期能把它用来开发一点我自己的小应用程序那就更好了。

    扯远了,回到正题。复制文档内容这个功能太常见啦,在微软word中实现这个功能很简单,只需要复制和粘贴就行了。这篇文章的主要目的是记录如何用C#来实现复制一个Word文档的部分或全部内容到另一个Word文档,废话不多说,下面开始。

    第一部分:复制部分内容:

    在我的这个示例中,复制部分内容指的是复制一个word文档的部分段落(包括格式、图片和超链接等)到另一个新的word文档。

    原文档截图:
    这里写图片描述

    步骤参考:

    第一步:新建一个word文档对象doc1并加载需要复制的word文档。

    Document doc1 = new Document();
    doc1.LoadFromFile("sample.docx");

    第二步:新建一个word文档对象doc2。

    Document doc2 = new Document();

    第三步:获取被复制文档doc1的第一个section以及第一、二个段落(图片和标题)。

    Section s = doc1.Sections[0];
    Paragraph p1 = s.Paragraphs[0];
    Paragraph p2 = s.Paragraphs[1];

    第四步:给doc2添加一个section,并将doc1的第一二段的内容和格式等复制到doc2中。

    Section s2 = doc2.AddSection();
    Paragraph NewPara1 = (Paragraph)p1.Clone();
    s2.Paragraphs.Add(NewPara1);
    Paragraph NewPara2 = (Paragraph)p2.Clone();
    s2.Paragraphs.Add(NewPara2);

    第五步:保存并重新打开文档。

    doc2.SaveToFile("copy.docx", FileFormat.Docx2010);
    System.Diagnostics.Process.Start("copy.docx");

    目标文档效果图:
    这里写图片描述

    第二部分:复制全部内容

    复制全部内容指的是将除header和footer以外的其他所有内容复制到另一个文档。

    步骤参考:

    第一步:新建两个word document对象,并加载待复制的源word文档和目标word文档。

    Document sourceDoc = new Document("sample.docx");
    Document destinationDoc = new Document("target.docx");

    第二步:遍历源word文档中的所有section并把它们的内容复制到目标word文档。

    foreach (Section sec in sourceDoc.Sections)
    {
        foreach (DocumentObject obj in sec.Body.ChildObjects)
        {
            destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
        }
    }

    第三步:保存并重启目标word文档。

    destinationDoc.SaveToFile("target.docx");
    System.Diagnostics.Process.Start("target.docx");

    在word文档之间单独复制header和footer也可以实现的,如有需要可以在下面留言。

    原文档与效果图:
    这里写图片描述

    效果图:

    这里写图片描述

    结语:

    文章写的比较简单,这里我还是使用了E-iceblue公司的免费Word控件,原因是它简单好用,而且我也使用的比较熟练了。接下来我还会研究它的其它功能,并用C#实现Office软件的其它功能。

    展开全文
  • 然后一个一个打开后是这样的: 如果采用“Ctrl+C”和“Ctrl+V”(复制粘贴键)的方式,既费时有容易出错,同时你也忽略了办公软件强大的功能,下面将演示快捷的做法: (1)打开Word软件,点击“插入”,选择文本...

    有时我们会遇到将多个文档进行合并的问题,这时你会选择怎么做?是万能
    的“Ctrl+C”和“Ctrl+V”(复制粘贴键)吗?如果真是这样的话,那遇到这样
    的问题你会不会傻眼?
    在这里插入图片描述
    然后一个一个打开后是这样的:只打开了一小部分文件
    如果采用“Ctrl+C”和“Ctrl+V”(复制粘贴键)的方式,既费时有容易出错,同时你也忽略了办公软件强大的功能,下面将演示快捷的做法:
    (1)打开Word软件,点击“插入”,选择文本中的“对象”区域,如图:在这里插入图片描述
    (2)点击“文件中的文字后”,即出现对话框,打开你文件所在路径,点击第一个文件然后按住“Shift”的同时点击最后一个文件即实现多选,再点击插入即可完成。在这里插入图片描述
    这样做既方便也快捷,而且也不易出错。

    展开全文
  • 扫描文件后的word 文档,相片合成为一个PDF文件
  • 利用VBA语言将同一文件夹中的多个Word文档合并到一个新的Word中,使用简单快捷。
  • 通常情况下,用户一般都会 将 “经常使用的Word样式” 定义为一个文档,其他文档要使用时,再把该文档的样式导入到要使用的文档上。 实现样式导入的具体方法如下:    (1)点击样式窗口右下角的...
    通常情况下,用户一般都会 将 “经常使用的Word样式” 定义为一个文档,其他文档要使用时,再把该文档的样式导入到要使用的文档上。

    实现样式导入的具体方法如下: 
     
    (1)点击样式窗口右下角的箭头。 
    (2)在样式窗口中选择“管理样式”选框,进入“管理样式”对话框。 
       
     

    (3) 在“管理样式”对话框中单击“导入/导出”按钮,进入“管理器”对话框。 
     
     
     
     
     
    (4)在管理器中单击右侧的“关闭文件”按钮,关闭Word默认的“Normal.dotm”样式模板


    (5)再单击“打开文件”按钮,在“打开”对话框中选择要添加样式的文档。 
     
     
     
     
     
     
    (5)打开需要添加样式的文档后,在管理器左侧 “选中”要添加的样式,单击“复制”按钮,即可将样式复制到另一个文档。
     
     
    (6) 设置完成后,单击最下面的“关闭”按钮,查看文档效果,已有完全一样的样式了。
    展开全文
  • 设计了一个Word文档批量生成小工具软件

    万次阅读 多人点赞 2018-08-25 10:44:45
    Word文档模板为事先已经排版好的报表、公文等文件,但留下部分内容需要更改,将该内容设定为一个标签(如[申请人]),然后用Excel表中该标签指定的内容进行替换。如只替换单个文件手动修改即可,用该软件意义不大,...

    最近,因朋友工作需要帮他开发了一个文档自动生成的小工具软件,即批量替换Word文档模板中设定标签为指定的内容。Word文档模板为事先已经排版好的报表、公文等文件,但留下部分内容需要更改,将该内容设定为一个标签(如[申请人]),然后用Excel表中该标签指定的内容进行替换。如只替换单个文件手动修改即可,用该软件意义不大,但要修改上百个文档,该软件的作用就体现出来了。
    该软件是在Visual Studio 2017 Community下用C#和WPF设计实现的,操作Excel和Word文档用微软自己的Mircrosoft.Office.Interop.ExcelMircrosoft.Office.Interop.Word组件。主界面如下:
    软件运行主界面
    其中:
    1、Excel总表格式为N行、M列数据。其中第一行为标签名,第一列为要创建的目标文件夹名,其余内容为不同文件夹下将文档模板中出现的标签名替换成的内容,其内容样式如下:
    这里写图片描述

    注意:子文件夹可以是需处理的文件号
    2、文档模板是指要处理的文档报表、证明等Word文件,文件内容中有部分标签需要用Excel总表中相关内容进行替换,替换后的内容另存到Excel总表中第一列表示的目标文件夹中,文件名为《目标文件名+文档模板文件名》。如以下报表:
    文档模板样式
    3、操作步骤:
    第一步:选择起始文件目录,目标文件夹将作为起始文件目录的子目录;
    第二步:选择Excel总表;
    第三步:添加文档模板(可添加多个文档模板);
    第四步:选择要创建的文件夹(即要处理的文件号),可多选;
    第五步:以上四步操作完成后,即可点击《批量处理》进行文档的自动替换生成。

    设计该软件的关键时如何操作Excel和Word文当,现列出其主要代码,操作Excel文档的主要代码如下:

               //打开Excel总表
                //创建1个工作簿,相当于1个Excel文件
                //Excel的文档结构是 Workbook->Worksheet(1个Workbook可以包含多个Worksheet)
                Excel.Application excel = new Excel.Application();
                try
                {
                    excel.Visible = false;
                    excel.DisplayAlerts = false;
                    Excel.Workbook wb = null;
                    wb = excel.Workbooks.Open(dialog.FileName);
                    Excel.Range rng2 = null;
                    Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1]; //索引从1开始 
                    try
                    {
    
                        int rowCount = 0;//有效行,索引从1开始
                        int colCount = 0;//有效列,索引从1开始
                        rowCount = ws.UsedRange.Rows.Count;//赋值有效行
                        colCount = ws.UsedRange.Columns.Count;//赋值有效列
                        excelMarkList.Clear();
                        excelContentList.Clear();
                        LstDirGen.Items.Clear();
                        for (int i = 1; i <= colCount; i++)
                        {
                            rng2 = (Excel.Range)ws.Cells[1, i];
                            excelMarkList.Add(rng2.Value2);
                        }
                        for (int i = 2; i <= rowCount; i++)
                        {
                            //tmpList.Clear();
                            List<string> tmpList = new List<string>();
                            for (int j = 1; j <= colCount; j++)
                            {
                                rng2 = (Excel.Range)ws.Cells[i, j];
                                if (j == 1)
                                {
                                    //将第一列加到列表控件中 
                                    LstDirGen.Items.Add(rng2.Value2);
                                }
                                tmpList.Add(rng2.Value2);
                            }
                            excelContentList.Add(tmpList);
                        }
                    }
                    catch (Exception ex)
                    {
                        System.Windows.MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        if (wb != null) wb.Close();
                        if (ws != null)
                        {
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
                            ws = null;
                        }
                        if (rng2 != null)
                        {
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(rng2);
                            rng2 = null;
                        }
                        if (excel != null)
                        {
                            excel.Workbooks.Close();
                            excel.Quit();
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show(ex.Message);
                }
                finally
                {
                    if (excel != null)
                    {
                        excel.Workbooks.Close();
                        excel.Quit();
                    }
    
                }
    

    操作Word文档的主要代码如下:

                MSWord.Application app = null;
                MSWord.Document doc = null;
                object oMissing = System.Reflection.Missing.Value;
                object replace = MSWord.WdReplace.wdReplaceAll;
                app = new MSWord.Application();//创建word应用程序
                try
                {
                    int inc = 0;
                    for (int i = 0; i < selectItemsIndex.Count; i++)
                    {
                        //创建子目录
                        string tmpDir = initPath + "/" + selectDirList[i];
                        if (!Directory.Exists(tmpDir))
                        {
                            Directory.CreateDirectory(tmpDir);
                        }
                        //模板文档循环
    
                        foreach (string docFile in docList)
                        {
                            string dstFile = initPath + "/" + selectDirList[i] + "/" +
                               selectDirList[i] + Path.GetFileName(docFile);
                            //拷贝文件
                            File.Copy(docFile, dstFile, true);
                            object fileName = (dstFile);//模板文件
                                                        //打开模板文件                            
                            doc = app.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);
    
                            for (int j = 0; j < excelMarkList.Count; j++)
                            {
                                string strOldText = excelMarkList[j];
                                string strNewText = excelContentList[selectItemsIndex[i]][j];
                                doc.Content.Find.Text = strOldText;
                                object FindText, ReplaceWith, Replace;// 
                                object MissingValue = Type.Missing;
                                FindText = strOldText;//要查找的文本 
                                ReplaceWith = strNewText;//替换文本 
                                Replace = MSWord.WdReplace.wdReplaceAll;
                                doc.Content.Find.ClearFormatting();//移除Find的搜索文本和段落格式设置
                                doc.Content.Find.Execute(
                                ref FindText, ref MissingValue,
                                ref MissingValue, ref MissingValue,
                                ref MissingValue, ref MissingValue,
                                ref MissingValue, ref MissingValue, ref MissingValue,
                                ref ReplaceWith, ref Replace,
                                ref MissingValue, ref MissingValue,
                                ref MissingValue, ref MissingValue);
                            }
    
                            doc.Close(MSWord.WdSaveOptions.wdSaveChanges);
                            bgworker.ReportProgress(++inc);
                            dspOkFile = dstFile;
                        }
    
                    }
                    bgworker.CancelAsync();
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show(ex.Message);
                }
                finally
                {
                    //关闭wordApp组件对象 
                    app.Quit();
                    app = null;
    
                }
    

    编译好的软件放在百度网盘上,有兴趣的朋友可以下载使用(修改以适应Office2007及以上版本文档处理_20180922)。
    软件下载地址:https://pan.baidu.com/s/1V0O9GnRw44lXOiu0uT3tGw
    最近有读者反应打开Excel总表出错,经测试发现是软件不能正确识别日期格式单元造成的,现已修改(Build20181117),请下载以下最新版(老用户也可以下载后进行升级)。
    软件下载地址:AutoDocGenSetUp20181117
    最近应读者建议,增加对页眉、页脚及文本框内文本的替换,请下载以下最新版(老用户也可以下载后进行升级)。
    软件下载地址:AutoDocGenSetUp20181228
    最近应网友建议,增加对正文、页眉、页脚及文本框内长文档(替换内容大于255个字符)的替换,感谢网友提供的参考文章:阅读该文章。请下载以下最新版(老用户也可以下载后进行升级)。
    最新软件下载地址:AutoDocGenSetup20190125
    最近应网友强烈建议,增加Excel总表内容转置功能(即第一列为标签),同时增加选择替换页眉、页脚中标签文本功能。请下载以下最新版本(老用户也可以下载升级)。
    最新软件下载地址:AutoDocGenSetup20190422
    提取码:rz22
    最近应网友建议,将生成的多份文档放到一个文件夹内,且将文件命名为《文档模板文件名+目标文件名》,现已修改。请下载以下最新版本(老用户也可以下载升级)。
    最新软件下载地址:AutoDocGenSetup20190824

    展开全文
  • 要将word文档的每页单独保存为一个word文档,首先需要能够逐页遍历word文档。 逐页遍历word文档可以使用word的定位功能。 代码如下: Sub SplitToOnePage() Const wdNumberOfPagesInDocument = 4 Const ...
  • 许多程序员在开发项目中经常会遇到客户想要将多个文件放在一个文档中呈现的问题,如后台服务器上保存了若干word文档一个word模板文档。(若干word文档目录保存在数据库中)当用代码打开word模板文档后,模板文档中...
  • 日常工作中我们经常会遇到这样的问题,将多个word文档的内同合并到一个文档,说实话刚开始的时候我确实是一个个文档打开,然后复制、粘贴这是文件数比较少的情况下,如果文件数非常多这样一个个打开岂不是很麻烦,...
  • Word文档批量转图片工具 1.0 绿色破解版 能次性将多个Word文档转换为图像文件 Word文档批量转图片工具(Doc2Pic)_1.0_绿色破解版 经测试过,是同类中最好用的,转换后的字体非常清晰,不变形!
  • 工作中,有时候碰到需要将一个比较大的word按照指定的页数分割成若干个小的word文档,下面提供分割的方法供参考: 一、按照单页拆分 1、在Word里面打开那个需要分割的文档(假设它的文件名叫“test.doc”); 2...
  • 为什么我win7上的word2007 只能打开一个word文档?当打开第二个时第一个就制动关了? 不能同时打开两个word文档?怎么解决?
  • 1.添加系统引用Microsoft.Office.Interop.Word; 2.相关的函数说明 WdDocumentType 枚举 (Word) 指定文档类型。 名称 值 说明 wdTypeDocument 0 文档。 wdTypeFrameset 2 框架集。 wdTypeTemplate 1 ...
  • jacob合并几个word文件一个word文件

    千次阅读 2017-01-08 20:37:53
    http://ourteam.iteye.com/blog/1167962
  • 而在Word中,如果两个文档的格式要求一致,就可以将编辑好的文档中的格式应用到另一个文档中。下面小编以把文档“1.docx"中的格式应用到文档“2.docx"中为例给大家演示一下。 1.打开需要被应用格式的文档,这里打开...
  • 实现将多word文件合并成一个word文档,整理两种方法,所需资料比较齐全,已经过测试,可直接下载使用。
  • 有时候需要将一个word文档每一页另存为一个word文档,如果手工操作,量大会累死人的。今天我们用VBA来实现批量自动处理。在文档的ThisDocument的代码页中输入以下代码,然后执行Sub SaveParagraph() 即可: Option ...
  • Word2016-将一个文档的样式应用到另一个文档

    万次阅读 多人点赞 2018-05-12 13:54:16
    近日接到任务,需要将十几份word文档的格式按照模板进行调整。遇到这种重复性的工作,当然是先上网搜一下有没有批量的解决方法,搜还真的有。下面是我亲测有用的方法以及我的操作过程。1、先拿word文档A,将...
  • 打开文档。 快捷键Alt + F11打开VBA编辑器,选择菜单“插入->模块” 粘贴代码 Option Explicit Sub SplitEveryFivePagesAsDocuments() Dim oSrcDoc As Document, oNewDoc As Document Dim strSrcName As ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 652,541
精华内容 261,016
关键字:

做一个word文档