当前位置: 首页 > news >正文

PageOffice在线打开word文件,并实现切换文件

本示例关键代码的编写位置,请参考“PageOffice 开发者中心-快速起步–开始 - 快速上手”里您所使用的开发语言框架的最简集成代码

注意 本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

推荐在主窗口浏览器中提供多个打开文件的链接(或按钮),点击每个链接都可以弹出Pageoffice浏览器(POBrowser)在线打开不同的Office文件,这样做就实现了同时打开多个文件,并且在任务栏上切换文件。此方案的优点是:速度更快,效率更高。

如果确实需要在弹出Pageoffice浏览器(POBrowser)窗口调用PageOffice在线打开文件之后,在POBrowser窗口内切换打开另外一个Office文件,比如,提供多个Tab标签页同时打开多个文件,并实现切换打开不同文件的效果,那么,需要升级PageOffice产品到V6.3.2.3(或更高版本),客户端控件增加了js接口pageofficectrl.Reload(),用于控件的重新加载,实现在PageOffice浏览器(POBrowser)中切换打开另一个文件的功能。

就以目前流行的前后端分离开发Springboot+Vue3框架为例,实现POBrowser窗口内切换打开不同文件的核心代码如下:

后端代码

编写调用PageOffice在线打开指定文件的代码如下:

@RestController
@RequestMapping(value = "/SwitchFile")
public class SwitchFile {@RequestMapping(value = "/Word")public String showWord(HttpServletRequest request,String fileName) {PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);//打开文档poCtrl.webOpen("/doc/SwitchFile/"+fileName, OpenModeType.docNormalEdit, "张三");return poCtrl.getHtml();}
}

前端代码

实现一个文件列表,点击文件列表中的不同文件的链接,就可以切换打开对应的Office文件。

<template><div class="Word"><div class="sidebar"><h3>文件列表</h3><ul><li v-for="file in files" :key="file.id" @click="selectFile(file)" class="file-link">{{ file.title }}</li></ul></div><div class="content"><h4>{{ selectedFile?.title }}</h4><!-- 此div用来加载PageOffice客户端控件 --><div style="width:auto; height:100%;" v-html="poHtmlCode"></div></div></div>
</template>
<script setup>
import request from '@/utils/request';
import { ref, onMounted } from 'vue'const poHtmlCode = ref('');const files = ref([{ id: 1, title: 'PageOffice对客户端的要求', fileName: 'test1.docx' },{ id: 2, title: 'PageOffice授权协议',  fileName: 'test2.docx' },{ id: 3, title: '试用版和正式版的区别',  fileName: 'test3.docx' },
]);const selectedFile = ref(null);function selectFile(file) {selectedFile.value = file;switchFile(file.fileName);
}function openFile(fileName) {// 发起GET请求到服务器后端接口,在线打开文件return request({url: '/SwitchFile/Word?fileName='+fileName,method: 'get',});
}function switchFile(fileName) {openFile(fileName).then(response => {poHtmlCode.value = response;pageofficectrl.Reload(); //必须,切换打开文件时必须调用pageofficectrl.Reload()});}function firstLoadFile(fileName){openFile(fileName).then(response => {poHtmlCode.value = response;});
}onMounted(() => {//如果想要首次打开POBrowser浏览器窗口时不打开文件,则下面的代码可以注释掉,并且注意如果首次打开POBrowser浏览器窗口想要打开文件,则千万不能调用pageofficectrl.Reload(),否则控件会加载两次selectedFile.fileName="test1.docx";//默认打开test1.docxfirstLoadFile(selectedFile.fileName);
})
</script>
<style>
/* 设置整个页面的样式 */
html,
body {height: 100%;margin: 0;padding: 0;overflow: hidden;
}
.Word {display: flex;
}
.sidebar {flex: 0 0 30%;height: 100vh;border-right: 1px solid #ccc;text-align: center;padding: 10px 50px;
}
.file-link {cursor: pointer;padding: 8px;border-bottom: 1px solid #eee;text-decoration: underline; color: #3568d7; display: block; 
}
.file-link:hover {background-color: #f0f0f0; color: #42b983; 
}
.content {flex: 0 0 70%;padding: 10px;
}
h4{color:#42b983;
}
</style>

参考链接:实现POBrowser窗口内切换打开不同文件

相关文章:

PageOffice在线打开word文件,并实现切换文件

本示例关键代码的编写位置&#xff0c;请参考“PageOffice 开发者中心-快速起步–开始 - 快速上手”里您所使用的开发语言框架的最简集成代码 注意 本文中展示的代码均为关键代码&#xff0c;复制粘贴到您的项目中&#xff0c;按照实际的情况&#xff0c;例如文档路径&#xff…...

Ubuntu 24.04 终端美化

参考文章&#xff1a;Ubuntu终端美化&#xff08;tabbyoh-my-zsh&#xff09;-Ubuntu系列03 有些步骤和 Ubuntu 24.04 不太适配&#xff0c;而且逻辑不太适合小白&#xff0c;故写此文。 1. 安装 Tabby 参考文章的 tabby 版本过老&#xff0c;如果在 Ubuntu 24.04 装会报一些依…...

python合并word中的run

在处理Word文档时&#xff0c;使用python-docx库可以读取文档中的段落&#xff0c;并将每个段落中的多个run合并为一个run。run对象用于表示段落中具有相同格式的文本部分。将多个run合并为一个run可以帮助简化文档结构&#xff0c;尤其是在格式一致的情况下。 以下是一个示例…...

微前端框架选型指南

微前端框架选型指南 一、写在前面 微前端架构为大型前端系统提供了分而治之的能力&#xff0c;不同团队可以独立开发、部署和维护各自的模块。然而&#xff0c;当前市面上存在多种微前端框架&#xff08;如 Qiankun、Wujie、micro-app、Hel、Emp 等&#xff09;&#xff0c;选…...

Tailwind CSS实战技巧:从核心类到高效开发

使用 Kooboo平台 训练实战技巧&#xff0c;无需配置安装&#xff0c;直接引入CDN就可以在线练习了&#xff01;具体操作流程&#xff1a;进入Kooboo后&#xff0c;选择创建空白站点 -> 站点开发 -> 控制面板 -> 页面 ->新建普通页面 -> 编写代码 一、核心布局类…...

C# 事件与委托

一、委托基础 1. 委托定义 委托是一种类型安全的函数指针&#xff0c;它允许将方法作为参数传递给其他方法。 // 声明一个委托类型 public delegate void MyDelegate(string message);// 使用委托 public class Program {public static void Main(){// 创建委托实例并指向方…...

django_rq

使用 Loguru 记录 Django-RQ 任务日志 要在 Django-RQ 处理的任务中使用 Loguru 记录日志&#xff0c;你需要做的就是按照标准的 Loguru 使用方法配置和使用日志记录器。下面是一个简单的示例&#xff0c;展示如何在 Django-RQ 的任务中集成 Loguru&#xff1a; 安装必要的包…...

Java List分页工具

PageUtil.java import com.google.common.collect.Lists; import com.jd.platform.hotkey.dashboard.common.domain.Page; import org.springframework.util.CollectionUtils;import java.util.ArrayList; import java.util.List;public class PageUtil {/*** 通用分页工具类*…...

【UE5】“对不起,您的客户端未能传递登录所需的参数”解决办法

想要进入Epic账户&#xff0c;正常登录后就会弹出这个&#xff1a; 官方提供了一个解决办法&#xff1a; 如果以上办法行不通&#xff0c;关闭单点登录&#xff1a; 成功解决...

Web开发-JavaEE应用SpringBoot栈模版注入ThymeleafFreemarkerVelocity

知识点&#xff1a; 1、安全开发-JavaEE-开发框架-SpringBoot&路由&传参 2、安全开发-JavaEE-模版引擎-Thymeleaf&Freemarker&Velocity 一、演示案例-WEB开发-JavaEE-开发框架-SpringBoot&路由&传参 类似于php语言中的thinkphp&#xff0c;不过要更加…...

出现Invalid bound statement (not found)问题的原因可能有哪些

1.全局配置文件没配好&#xff1f; 检查全局配置文件application.properties或application.yml是否配置扫描mapper包的文件路径 #mybatis配置mapper文件路径 #mybatis.mapper-locationsclasspath:/mapper/*.xml #mybatis-plus配置mapper文件路径 mybatis-plus.mapper-locatio…...

多类型文件集中查看系统

软件介绍 Universal Viewer 是一款具备多格式兼容能力的文件查看工具&#xff0c;旨在为用户提供统一化的文档处理方案。 核心功能优势 该工具采用全格式兼容架构&#xff0c;支持包括图片、音视频及办公文档在内的多种通用文件类型&#xff0c;实现单一软件完成多格式处…...

WebSocket与Socket、TCP、HTTP的关系及区别

1.什么是WebSocket及原理 WebSocket是HTML5中新协议、新API。 WebSocket从满足基于Web的日益增长的实时通信需求应运而生&#xff0c;解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题&#xff0c;实现里多路复用&#xff0c;是全双工、双向、单套…...

【25软考网工】第四章(4)无线局域网WLAN安全技术、无线个人网WPAN

目录 一、无线局域网安全技术 1. WLAN安全机制 ​编辑 1&#xff09;SSID访问控制 2&#xff09;物理地址过滤 3&#xff09;WEP认证和加密 4&#xff09;WPA&#xff08;认证、加密、数据完整性&#xff09; 5&#xff09;WPA2 6&#xff09;无线认证技术 2. WEP和W…...

Vue:el-table-tree懒加载数据

目录 一、出现场景二、具体使用三、修改时重新加载树节点四、新增、删除重新加载树节点 一、出现场景 在项目的开发过程中&#xff0c;我们经常会使用到表格树的格式&#xff0c;但是犹豫数据较多&#xff0c;使用分页又不符合项目需求时&#xff0c;就需要对树进行懒加载的操…...

JCRQ1河马算法+消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测,作者:机器学习之心

JCRQ1河马算法消融实验&#xff01;HO-CNN-LSTM-Attention系列四模型多变量时序预测 目录 JCRQ1河马算法消融实验&#xff01;HO-CNN-LSTM-Attention系列四模型多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于HO-CNN-LSTM-Attention、CNN-LSTM-Attent…...

vue elementui 去掉默认填充 密码input导致的默认填充

<el-form-item prop"code"><div style"display: flex; width: 100%; align-items: flex-end"><el-inputv-model"loginForm.code"size"small"auto-complete"off"placeholder"请输入验证码"keyup.en…...

Android学习总结之设计场景题

设计图片请求框架的缓存模块 核心目标是通过分层缓存策略&#xff08;内存缓存 磁盘缓存&#xff09;提升图片加载效率&#xff0c;同时兼顾内存占用和存储性能。以下是针对 Android 面试官的回答思路&#xff0c;结合代码注释说明关键设计点&#xff1a; 一、缓存架构设计&…...

【数学建模国奖速成系列】优秀论文绘图复现代码(四)

文章目录 引言三维图双轴图三维散点图完整复现代码 引言 数模比赛的绘图是非常重要得&#xff0c;这篇文章给大家分享我自己复现国奖优秀论文的代码&#xff0c;基于Matalab来实现&#xff0c;可以直接运行出图。之前的文章也有分享【折线图、柱状图、箱线图、热图】的绘制&am…...

哪些因素会影响远程视频监控的质量?浅述EasyCVR视频智能诊断技术

在安防领域&#xff0c;无线监控系统凭借其灵活部署、便捷扩展的特性得到广泛应用。然而&#xff0c;实时监控图像清晰度不足、回放调查受限等问题&#xff0c;严重制约了其应用效果。经分析&#xff0c;摄像机性能、线缆质量、无线网桥性能、交换机配置及供电电压等是影响图像…...

Android学习总结之算法篇六(数组和栈)

括号匹配 public static boolean isValid(String s) {// 创建一个栈用于存储左括号Stack<Character> stack new Stack<>();// 遍历字符串中的每个字符for (char c : s.toCharArray()) {if (c ( || c [ || c {) {// 如果是左括号&#xff0c;将其压入栈中stack…...

一套SaaS ERP管理系统源码,支持项目二开商用,SpringBoot+Vue+ElementUI+UniAPP

ERP管理系统源码&#xff0c;一款适用于小微企业的SaaS ERP管理系统源码, 采用最新的技术栈开发(SpringBootVueElementUIUniAPP)&#xff0c;让企业简单上云。 专注于小微企业的应用需求&#xff0c;如企业基本的进销存、询价&#xff0c;报价, 采购、销售、MRP生产制造、品质…...

【Agent】MCP协议 | 用高德MCP Server制作旅游攻略

note MCP (Model Context Protocol) 代表了 AI 与外部工具和数据交互的标准建立。MCP 的本质&#xff1a;它是一个统一的协议标准&#xff0c;使 AI 模型能够以一致的方式连接各种数据源和工具&#xff0c;类似于 AI 世界的"USB-C"接口。 它能够在 LLM/AI Agent 与外…...

ISO 26262认证步骤

一、企业需要做&#xff1f; 从 ISO 26262 标准导入到认证大概需要经历7 个主要的阶段&#xff0c; 分别是策划阶段、 流程建立阶段、 流程试运行阶段、 流程认证阶段、 流程推广阶段、 产品认证阶段和持续运行阶段。 策划阶段&#xff1a;精准布局差距分析&#xff1a;对照 I…...

php+mysql活动报名学生选课产品预定旅游报名系统网站源码

本系统是一个基于PHPMySQL的活动报名管理系统&#xff0c;支持多个活动的发布、报名、审核等功能。系统分为用户端和管理端两个部分&#xff0c;实现了活动报名的完整流程管理。 环境要求 ------- - PHP 7.1 - MySQL 5.6 - 支持mysqli扩展 - 支持session - 支持文件上传 默认账…...

Qt QWebEngine应用和网页的交互

一、QWebEngine简介 1、Qt WebEngine模块提供了一个Web浏览器引擎&#xff0c;可以轻松地将万维网上的内容嵌入到没有本机Web引擎的平台上的Qt应用程序中。 2、Qt WebEngine提供了用于渲染HTML&#xff0c;XHTML和SVG文档的C 类和QML类型&#xff0c;它们使用级联样式表&#…...

【爬虫】deepseek谈爬虫工具

2025 年&#xff0c;随着 Web 技术的演进和反爬机制的升级&#xff0c;工具生态也会进一步优化。以下是 2025 年爬虫 & 自动化测试的前沿工具预测&#xff0c;结合行业趋势和现有技术发展方向&#xff1a; &#x1f680; 2025 年推荐组合&#xff08;预测版&#xff09; 1…...

大数据治理自动化与智能化实践指南:架构、工具与实战方案(含代码)

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:从人治到机治,数据治理正在进化 随着数据体量持续膨胀、数据场景复杂化,传统依赖人工规则的大数据治理方式已难以为继。企业在治理过程中面临: 数据质量问题激增,人工检测成本高 元数…...

基于BM1684X+RK3588的智能工业视觉边缘计算盒子解决方案

智能工业视觉边缘计算终端技术方案书‌ ‌1. 产品概述‌ 1.1 产品定位 面向工业自动化场景的高性能AI视觉处理设备集成BM1684X&#xff08;8TOPS INT8&#xff09;AI加速芯片 RK3588&#xff08;6TOPS NPU&#xff09;异构计算支持工业级多相机接入、实时缺陷检测、高精度定…...

dubbo泛化调用时transient字段失效问题

工作中发现dubbo泛化调用时结果类中的某个字段即使已经用transient修饰了&#xff0c;但是前端还是会有该字段展示&#xff0c;探究了原因如下&#xff1a; 如果是走的泛化调用&#xff0c;会通过genericFilter和genericImplFilter两个类来处理序列化和反序列化&#xff0c;会…...

【C++】数据结构 九种排序算法的实现

本篇博客给大家带来的是直接插入、希尔、直接选择、堆、冒泡、快速、归并、计数、排序算法的实现&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;数据结构 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享…...

【数据结构与算法】跳表实现详解

文章目录 Ⅰ. 前言Ⅱ. 跳表(skiplist)一、什么是跳表二、跳表的发明历程三、跳表的搜索方式Ⅲ. skiplist的算法性能分析一、理论准备二、性能分析(了解即可,主要记结论)Ⅳ. skiplist与平衡树、哈希表的比较Ⅴ. skiplist的实现[ 设计跳表](https://leetcode.cn/problems/de…...

2025年“深圳杯”数学建模挑战赛B题-LED显示屏颜色转换设计与校正

LED显示屏颜色转换设计与校正 小驴数模 问题的背景 走在晚风都市&#xff0c;或春日田野&#xff0c;我们都会看到一个色彩斑斓的世界。色彩是我们对世界一种重要感知。什么是色彩&#xff0c;或颜色&#xff1f;颜色是光作用于人眼引起的视觉感知现象&#xff0c;它与物体的…...

毕业论文 | 基于C#开发的NMEA 0183协议上位机

以下是基于C#开发的NMEA 0183协议上位机完整实现方案,包含串口通信、数据解析与可视化功能: 基于C#开发的NMEA 0183协议上位机 一、项目结构二、核心代码实现1. 数据模型定义2. 串口通信管理3. NMEA协议解析核心4. 主界面实现(Windows Forms)三、界面设计关键元素(需在窗体…...

【Scrapy】简单项目实战--爬取dangdang图书信息

目录 一、基本步骤 1、新建项目 &#xff1a;新建一个新的爬虫项目 2、明确目标 &#xff08;items.py&#xff09;&#xff1a;明确你想要抓取的目标 3、制作爬虫 &#xff08;spiders/xxspider.py&#xff09;&#xff1a;制作爬虫开始爬取网页 4、存储内容 &#xff08;p…...

Linux架构篇、第1章_01架构的介绍HTTP HTTPS 协议全面解析

题目&#xff1a;HTTP/HTTPS 协议全面解析&#xff1a;原理、区别与状态码详解 版本号: 1.0,0 作者: 老王要学习 日期: 2025.04.30 适用环境: 服务器 文档说明 本文围绕 HTTP/HTTPS 协议展开&#xff0c;详细介绍了协议的基本概念、工作原理、两者之间的区别以及常见的状态码…...

Python 刷题记录(持续更新)

Python 刷题记录&#xff08;持续更新&#xff09; 主要是 PythonTip 里的题目 刷题网站 【PythonTip】1.分秒转换 def convert_to_seconds(minutes):second minutes * 60return second# 输入分钟 input_minutes int(input())# 调用函数 print(convert_to_seconds(input…...

核心技能:ArcGIS洪水灾害普查、风险评估及淹没制图

查看原文>>>ArcGIS 在洪水灾害普查、风险评估及淹没制图中的实践技术应用 【内容简述】&#xff1a; 水旱灾害风险普查是全国自然灾害综合风险普查的重要组成部分。其中&#xff0c;我国有超过 60%的国土面积、90%以上的人口均受到不同程度的洪水威胁&#xff0c;重…...

MySQL explain

1 EXPLAIN执行结果下各字段含义 (1) id 含义&#xff1a;标识查询中每个 SELECT 子句的唯一编号。规则&#xff1a;相同 id&#xff1a;按从上到下的顺序执行。不同 id&#xff1a;值越大&#xff0c;优先级越高&#xff08;先执行&#xff09;。NULL&#xff1a;表示该行是 …...

数据结构每日一题day14(链表)★★★★★

题目描述&#xff1a;试编写算法将带头结点的单链表就地逆置&#xff0c;所谓“就地”就是空间复杂度为O&#xff08;1)。 算法思想&#xff1a; 1.初始化&#xff1a; 定义三个指针 prev、curr、next&#xff0c;分别表示前驱节点、当前节点和后继节点。 prev 初始化为 NULL…...

Java继承中super的使用方法

super 关键字在 Java 中用于访问父类的成员&#xff08;包括字段、方法和构造函数&#xff09;。当你在子类中调用父类的方法或访问父类的成员变量时&#xff0c;super 是必不可少的工具。 &#x1f511; super 的基本用法 1. 调用父类的构造方法 在子类的构造方法中&#x…...

2025东三省B题深圳杯B题数学建模挑战赛数模思路代码文章教学

完整内容请看文章最下面的推广群 一、问题一的模型构建与优化&#xff08;RGB颜色空间转换模型&#xff09; 基础模型&#xff08;线性映射模型&#xff09;/高斯过程回归模型&#xff08;GPR&#xff09;&#xff1a; 针对高清视频源&#xff08;BT2020标准&#xff09;与普通…...

K8S - GitOps 入门实战 - 自动发布与秒级回滚

引言 传统运维依赖手动执行 kubectl apply或脚本推送应用&#xff0c;存在环境差异、操作记录缺失、回滚缓慢等痛点。 GitOps以 Git 为唯一可信源&#xff0c;通过声明式配置和版本化回滚&#xff0c;重构 Kubernetes 交付流程&#xff0c;带来以下优势&#xff1a; • 环境…...

第六章 流量特征分析-常见攻击事件 tomcat wp

1、在web服务器上发现的可疑活动,流量分析会显示很多请求,这表明存在恶意的扫描行为,通过分析扫描的行为后提交攻击者IP flag格式&#xff1a;flag{ip}&#xff0c;如&#xff1a;flag{127.0.0.1} 可看见有大量的IP为&#xff1a;14.0.0.120的ip攻击10.0.0.112。 2、找到攻击者…...

Axure RP 快速上手指南:安装配置与实战技巧

以下是Axure RP的中文安装与使用指南&#xff1a; 1. 下载Axure RP Axure RP提供下载地址&#xff1a;https://pan.quark.cn/s/cc957c429c1c 2. 安装Axure RP Windows系统&#xff1a; 双击下载的 .exe 文件。 按提示完成安装&#xff08;接受协议、选择安装路径等&#xff…...

【Dockerfile】Dockerfile打包Tomcat及TongWeb应用镜像(工作实践踩坑教学)

文章目录 前言准备工作目录结构准备基础镜像准备dockerfile开发&#xff08;TongWeb&#xff09;dockerfile开发&#xff08;Tomcat&#xff09;dockerfile镜像命令&#xff08;排查问题基本够用&#xff09; 更多相关内容可查看 前言 本文仅应用于完成此项工作&#xff0c;后…...

第16届蓝桥STEMA真题剖析-2025年1月12日Scratch初/中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥真题解析系列教程第223讲。 第16届第4次蓝桥STEMA已于2025年1月12日正式落下帷幕&#xff0c;比赛仍然采取线上形式。这是Scratch…...

文件读取操作

如果需要从文件读入数据&#xff0c;并把输出数据保存为文件&#xff0c;需要使用文件读取。 freopen为file reopen&#xff0c;意为文件重新打开&#xff0c;实现重定向标准输入输出第一个参数为文件名可以修改&#xff0c;输入文件为.in&#xff0c;输出文件为.out第二个参数…...

服务容错治理框架resilience4jsentinel基础应用---微服务的限流/熔断/降级解决方案

写在前文&#xff1a;hystrix停止维护&#xff0c;不做总结&#xff1b; 本文主要总结sentinel和resilience4j这两个框架&#xff1b;另外额外补充面试可能会问到的限流算法&#xff1b; 目录 限流算法 漏桶算法 计数器算法 令牌桶算法 resilience4j与sentinel resilie…...

信创系统图形界面开发指南:技术选择与实践详解

信创系统图形界面开发指南&#xff1a;技术选择与实践详解 &#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&…...