Javascript利用VBA编辑Word文档 您所在的位置:网站首页 wdorientlandscape Javascript利用VBA编辑Word文档

Javascript利用VBA编辑Word文档

2023-03-15 18:27| 来源: 网络整理| 查看: 265

在做人事系统过程中,发现网上关于Javascript与VBA交互的知识比较匮乏,为此我把自己对这方面的研究和大家分享下,希望能填补大家对这片知识的空白。

先向大家介绍一些简单应用,比如JS创建Word文档、在Word中打印文字、添加表格,填充表格、合并表格

var wdapp = new ActiveXObject("Word.Application"); //引用word wdapp.visible = true; //word模板是否可见 wddoc = wdapp.Documents.add(); //添加空白页 wdapp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape; //文档横向排版 wdapp.Selection.TypeText("内容"); //打印文字 var myTable = wddoc.Tables.Add(wdapp.Selection.Range, 3, 3); myTable.Borders.Enable = true;//创建一个三行三列的表格 myTable.Cell(1, 1).Merge(myTable.Cell(1, 3)); //合并第一行 with (myTable.Cell(1, 1).Range) //向表格第一行第一列填充数据 { InsertAfter("内容"); }

如果您的需求比较高,比如想设置表格的行高、表格内容居中,那么下面这套解决方案肯定适合您。

首先,我们需要创建XML文件--ForwardedFileLetter.xml,并在XML中配置好在表格中需要显示的内容和内容的格式,如下代码:设置标题内容为“转递档案通知单”,字号为16,字体为宋体,对齐方式为居中。

转递档案通知单 档案编号: 姓名 现档案存放单位 袋数 册数 备 注

接着,我们在JS中创建对象,用于保存XML中获取的数据,好比C#中的实体。

var xmldoc = loadXML("ForwardedFileLetter.xml"); //读取xml文件 var Title1 = new Object(); //创建对象 var XMLTitle1 = xmldoc.getElementsByTagName("Title1"); //通过XML中的标记,获得Title1节点中包含的内容,并储存到XMLTitle1中 Title1.FontSize = XMLTitle1[0].getAttribute("fontsize"); //获得节点属性:字体大小 Title1.FontName = XMLTitle1[0].getAttribute("font-name"); //获得节点属性:字体样式 Title1.Alignment = XMLTitle1[0].getAttribute("Alignment");//获取节点属性:对齐方式 Title1.Content = XMLTitle1 [0].childNodes[0].text; //获得节点内容 var Conten1 = new Object(); //创建对象 var XMLContent = xmldoc.getElementsByTagName("Content1"); //获得Content1节点 Content1.FontName = XMLContent [0].getAttribute("font-name"); //获得节点属性:字体样式 Content1.FontSize = XMLContent [0].getAttribute("fontsize"); //获得节点属性;字体大小 var Table1 = new Object(); //创建对象 var XMLtable = xmldoc.getElementsByTagName("Table1"); //获得节点 Table1.Height = XMLtable [0].getAttribute("Height"); //获得表格行高属性 最后介绍如何使用保存在对象中的属性//设置Word文档中,第一段(标题)内容格式 wdapp.ActiveDocument.Paragraphs(1).Range.Font.Name = Title1.FontName; //通过对象Title1加载XML文件Title1标签下设置的FontName(字体)属性 wdapp.ActiveDocument.Paragraphs(1).Range.Font.Size = Title1.FontSize; //通过对象Title1加载XML文件Title1标签下设置的FontSize(字号)属性 wdapp.ActiveDocument.Paragraphs(1).Alignment = Title1.Alignment; //通过对象Title1加载XML文件Title1标签下设置的Alignment(对齐方式)属性 //设置表格表格内容格式 wdapp.ActiveDocument.Tables(1).Range.Font.Name = Content1.FontName; wdapp.ActiveDocument.Tables(1).Range.Font.Size = Content1.FontSize; wdapp.ActiveDocument.Tables(1).Rows.Height = Table1.Height; //设置表格中的字体居中显示 wdapp.ActiveDocument.Tables(1).Range.ParagraphFormat.Alignment = Title1.Alignment; wdapp.ActiveDocument.Tables(1).Range.Cells.VerticalAlignment = Title1.Alignment; 下面是自己通过上述方法实现的Demo截图

希望我的讲解能让大家对JS和VBA有更深的认识。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有