首页 > 其他分享 >PageOffice在线打开office文件通过js调用vba可实现的功能

PageOffice在线打开office文件通过js调用vba可实现的功能

时间:2023-01-17 19:23:50浏览次数:81  
标签:PageOfficeCtrl1 vba document word office js Application getElementById Document

pageoffice封装的js接口有限,某些比较复杂的设置用到的客户不多,所以没有提供直接的js方法,但是pageoffice提供了Document属性和RunMacro方法,可以调vba或直接运行宏指令实现比较小众的一些需求

Word相关功能

1、给word表格中的单元格赋值

document.getElementById("PageOfficeCtrl1").Document.Tables(1).Cell(1, 1).Range.Text = "插入文本"

2、弹出word另存为所有格式的对话框

document.getElementById("PageOfficeCtrl1").Document.Application.Dialogs(84).Show();

3、给word文件光标处插入文本(两种方法)

//插入的文本处于光标选中状态
document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Text="测试测试";
//光标在行尾
document.getElementById("PageOfficeCtrl1").Document.Application.Selection.TypeText("测试测试");

4、给word中选中的文本设置颜色(2是WdColorIndex常量,表示设置的颜色)

document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Range.Font.ColorIndex = "2";

5、光标定位到行尾

document.getElementById("PageOfficeCtrl1").Document.Application.Selection.EndKey();

6、 光标定位到word文件结尾(6是 WdUnits参数,表示光标移动的位置)

document.getElementById("PageOfficeCtrl1").Document.Application.Selection.EndKey(6);

7、插入换行符

document.getElementById("PageOfficeCtrl1").Document.Application.Selection.TypeParagraph();

8、拒绝文档中所有的修订(必须在docAdmin模式下使用)

document.getElementById("PageOfficeCtrl1").Document.RejectAllRevisions();

9、显示导航栏窗口

document.getElementById("PageOfficeCtrl1").Document.Application.ActiveWindow.DocumentMap = true;

10、隐藏word中的修订格式(删除、添加内容这些不隐藏。改变字体样式或者大小这种格式会被隐藏)

document.getElementById("PageOfficeCtrl1").Document.Application.ActiveWindow.View.ShowFormatChanges = false;

11、遍历删除当前word文档中所有的键盘批注

function  deleteAllComments(){
    var docObj = document.getElementById("PageOfficeCtrl1").Document;
    for(var i=docObj .Comments.Count; i>=1; i--){
        docObj .Comments(i).Delete();
    }
} 

12、设置打开文件的页面的百分比为200%

document.getElementById("PageOfficeCtrl1").Document.Application.ActiveWindow.ActivePane.View.Zoom.Percentage = 200;

13、word中删除光标所在行

document.getElementById("PageOfficeCtrl1").Document.Application.Selection.TypeBackspace();

14、根据用户名显示批注

function Button3_onclick() {
        var name = "Tom";//用户名
        var docObj = document.getElementById("PageOfficeCtrl1").Document;
        for(var i=1;i<=docObj .Comments.Count;i++){
            var author = docObj.Comments.Item(i).Author;
            // alert(author);
            if(author != name){
                document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.Reviewers(author).Visible = false;
            }else {
                document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.Reviewers(author).Visible = true;
            }
        }
    }

Excel相关功能

1、excel插入批注(注意:此功能只有pageoffice专业版或者企业版才能支持)

var sMac = 'Sub addCom() \r\n ' + 'ActiveSheet.Application.Sheets("Sheet1").Range("A1").AddComment ("批注信息") \r\n ' + 'End Sub'; 
document.getElementById("PageOfficeCtrl1").RunMacro("addCom", sMac); 

2、获取excel当前活动的sheet的名称

var sheetName=document.getElementById("PageOfficeCtrl1").Document.ActiveSheet.Name;

3、excel中光标选中某个单元格

document.getElementById("PageOfficeCtrl1").Document.Application.Sheets("Sheet1").Range("C1").Select();

4、给excel单元格赋值

document.getElementById("PageOfficeCtrl1").Document.Application.Sheets("Sheet1").Range("C1").Value = "测试";

标签:PageOfficeCtrl1,vba,document,word,office,js,Application,getElementById,Document
From: https://www.cnblogs.com/uzi05/p/17058558.html

相关文章

  • js遍历集合中的数据取值
    js遍历集合中的数据取值res.items我后端返回的数据集合constarray=res.items;options.map((item)=>{if(item.code==value){}});......
  • 【自用】JS知识点小抄[updating]
    js学过很久了,因为框架的出现以至于对原生js的熟悉程度指数级下降。但是不可否认js在前端领域的重要性。借着最近的空闲时间,能有机会从零开始梳理一遍js的所有常用语法及知......
  • js数组中存在一些虚假值,不想要?此方法一步就
    在JavaScript数组中有时候会存在一些虚假值:null、undefiend、NaN、false、0等。如果不想要的话,传统做法是循环去除,是否有更简单的方式呢?有,废话不多说:constarry=[1,0,fa......
  • vuejs从入门到精通——初识 vue
    初识vue  文档接下来的内容会假设你对HTML、CSS和JavaScript已经基本熟悉。如果你对前端开发完全陌生,最好不要直接从一个框架开始进行入门学习——最好是掌握了基......
  • 如何在EXCEL VBA中从DATE格式更改为数字?
    我将项目存储在字典中,其中键为date,例如'2012/05/11'。默认情况下,该键被改为数字(41040)。当我想要检索该项目时,我需要通过编号:dFRmonths.Item(41040)来引用它。由于dFRmonths......
  • 怎样让json格式文本以JSON格式化
    在Linux命令行中格式化输出json原创 TIAP TIAP 2022-12-3007:35 发表于山东收录于合集#Linux158个TIAP技术分享,经验交流,职业生涯探讨。120篇原创......
  • 小满nestjs(第二十六章 nestjs 第一个CURD)
    来了来了他来了我们学了这么久的第一个CURD前端Vue3tsElementui axios<template><divclass="wraps"><div><el-inputv-model="search.keyWo......
  • JS typeof null 为什么是object
    为什么​​typeofnull​​​的结果是​​Object​​​​null是基本类型而object是引用类型这样就会存在矛盾​​ 我们从源码解析看这个问题我们的JS是经过V8引擎......
  • 小满nestjs(第十六章 nestjs 响应拦截器)
    拦截器拦截器具有一系列有用的功能,这些功能受面向切面编程(AOP)技术的启发。它们可以:在函数执行之前/之后绑定额外的逻辑转换从函数返回的结果转换从函数抛出的异常扩展基本函......
  • 小满nestjs(第十八章 nestjs 管道转换)
    管道可以做两件事1.转换,可以将前端传入的数据转成成我们需要的数据2.验证类似于前端的rules配置验证规则我们先来讲一下转换Nestjs提供了八个内置转换API​​Validatio......