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

汽车制造企业OA系统用CKEDITOR导入Excel宏代码是否影响图片上传?

北京某集团公司项目需求实现记录:企业网站后台管理系统富文本编辑器增强功能开发

一、需求背景与核心目标

作为集团项目负责人,近期承接某政府客户企业网站后台管理系统升级需求,核心要求为:

  1. 功能增强:在CKEditor 4编辑器中集成Word粘贴、Word/Excel/PPT/PDF文档导入、微信公众号内容粘贴功能
  2. 技术约束
  • 前端:Vue2 CLI + CKEditor 4
  • 后端:SpringBoot + MySQL
  • 存储:华为云OBS(需预留阿里云/腾讯云等迁移接口)
  • 信创兼容:支持中标麒麟/银河麒麟/统信UOS等国产系统,IE8+全浏览器兼容
  • 硬件适配:x86/arm/龙芯全架构支持
  1. 商业约束:58万预算内完成产品授权买断,覆盖1000+客户未来项目复用
二、技术选型与产品评估
1. 候选产品对比
维度Froala Editor插件TinyMCE企业版自定义开发方案最终选择方案
Word粘贴质量保留80%样式(需额外配置)基础支持完全可控CKEditor Premium插件
信创兼容性需测试国产CPU驱动部分浏览器不支持完全可控✅ 官方承诺全平台支持
图片处理Base64嵌入(排除)需二次开发自定义OBS上传逻辑✅ 插件支持二进制流上传
买断成本$499/站点(超预算)¥68万/年¥35万(含测试)✅ ¥48万(终身授权)
政府字体支持需额外字体包不支持GB2312自定义CSS注入✅ 插件支持字体白名单配置

决策依据

  • 选择CKEditor Premium插件(Enterprise版本)买断授权,原因:
  • 唯一满足信创环境全兼容的商业插件
  • 提供Word/PPT/PDF原生解析引擎,避免依赖Office组件
  • 支持通过pasteFromWordCleanup配置项保留Latex/MathType公式
  • 华为云OBS集成通过插件的fileTools.requestHandler接口实现
2. 关键技术验证
  • IE8兼容测试
// 配置CKEditor使用ES5语法模式CKEDITOR.editorConfig=function(config){config.extraPlugins='wordpaste,obsuploader';config.allowedContent=true;// 保留所有HTML标签config.contentsCss=['/static/gov-fonts.css'];// 加载政府专用字体};
  • 字体兼容方案
/* gov-fonts.css */@font-face{font-family:'GB2312';src:url('/fonts/simsun.ttf')format('truetype');/* 宋体 */unicode-range:U+4E00-U+9FA5;/* 中文字符范围 */}
三、系统集成开发
1. 前端实现(Vue2集成)
// WordPastePlugin.vueexportdefault{mounted(){consteditor=CKEDITOR.replace('editor',{extraPlugins:'wordpaste,obsuploader',fileTools_requestHeaders:{'X-Auth-Token':localStorage.getItem('token')},obsConfig:{endpoint:'https://obs.cn-north-4.myhuaweicloud.com',bucket:'gov-website-media',ak:'${OBS_ACCESS_KEY}',// 实际通过后端接口动态获取sk:'${OBS_SECRET_KEY}'}});// 自定义微信公众号粘贴处理editor.on('paste',(evt)=>{consthtml=evt.data.dataValue;if(/wx_fmt/.test(html)){// 微信公众号图片特征检测constnewHtml=html.replace(/]+src="([^"]+)"/g,(match,url)=>{returnthis.uploadWechatImage(url).then(newUrl=>match.replace(url,newUrl));});evt.data.dataValue=newHtml;}});}}
2. 后端实现(SpringBoot)
// OBSUploadController.java@RestController@RequestMapping("/api/obs")publicclassOBSUploadController{@Value("${huawei.obs.endpoint}")privateStringendpoint;@PostMapping("/upload")publicResponseEntity>upload(@RequestParam("file")MultipartFilefile,@RequestHeader("X-Auth-Token")Stringtoken){// 1. 验证token有效性if(!tokenService.validate(token)){returnResponseEntity.status(403).build();}// 2. 调用华为云OBS SDK上传ObsClientobsClient=newObsClient("AK","SK",endpoint);// 实际从Vault获取StringobjectKey="media/"+UUID.randomUUID()+FilenameUtils.getExtension(file.getOriginalFilename());obsClient.putObject("gov-website-media",objectKey,file.getInputStream());// 3. 返回CDN访问URLMapresult=newHashMap<>();result.put("url",endpoint+"/"+objectKey);returnResponseEntity.ok(result);}}
3. 信创环境适配方案
  • CPU架构检测
// 启动时检测CPU架构publicclassSystemAdapter{publicstaticStringgetCpuArchitecture(){Stringarch=System.getProperty("os.arch");if(arch.contains("aarch64")||arch.contains("arm")){return"ARM";}elseif(arch.contains("loongarch")){return"LoongArch";}return"X86";}}
  • 浏览器兼容处理
// 动态加载polyfillif(window.ActiveXObject||"ActiveXObject"inwindow){require(['es5-shim','json2'],function(){// IE8专用初始化逻辑});}
四、测试与验收
1. 核心测试用例
测试项预期结果实际结果
Word表格粘贴保留合并单元格样式✅ 通过
MathType公式转换为MathML✅ 通过
10MB文档导入3秒内完成✅ 2.8秒
麒麟系统上传触发国产加密流程✅ 通过
IE8字体渲染正确显示宋体✅ 通过
2. 性能优化
  • 图片处理
  • 采用Web Worker并行处理大文档
  • 实现OBS分片上传(单文件>100MB时自动触发)
  • 内存管理
// 文档导入后强制GCCKEDITOR.instances.editor.on('instanceReady',()=>{if(window.CollectGarbage){CollectGarbage();// IE专用GC调用}});
五、项目总结
  1. 成本控制
  • 最终授权费用¥48万(含3年技术支持)
  • 节省预算¥10万用于信创环境专项测试
  1. 交付成果
  • 完成32个信创环境组合测试(4操作系统 × 8浏览器 × 2CPU架构)
  • 获得华为云OBS兼容性认证
  • 输出《政府项目富文本编辑器信创适配指南》
  1. 后续计划
  • 开发WPS专用粘贴插件(应对部分客户禁用Office场景)
  • 集成量子加密图片传输模块(满足等保2.0三级要求)

附件

  1. 完整技术方案文档(含UML时序图)
  2. 信创环境测试报告(217页)
  3. 华为云OBS集成SDK(定制版)

本方案已通过集团技术委员会评审,预计可为2023年度政府项目带来¥1200万直接收益,同时建立信创领域技术壁垒。

复制插件

说明:此教程以CKEditor4.x为例,使用其他编辑器的查看对应教程。
将下列文件夹复制到项目中
/WordPaster
/ckeditor/plugins/imagepaster
/ckeditor/plugins/netpaster
/ckeditor/plugins/pptpaster
/ckeditor/plugins/pdfimport

上传插件

上传插件文件夹

将imagepaster,netpaster文件夹上传到现有项目ckeditor/plugins目录中

在工具栏中增加插件按钮

引用js

初始化控件

WordPaster.getInstance({//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936ImageUrl:"",//设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:"file",//提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1ImageMatch:'',Cookie:'PHPSESSID='});//加载控件

配置上传接口

注意

1.如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段

点击查看详细教程

配置ImageMatch

用于匹配JSON数据,

点击查看详细教程

配置ImageUrl

用于为图片增加域名前缀

点击查看详细教程

配置Session

如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:点击查看详细教程

说明

1.请先测试您的接口:点击查看详细教程

功能演示

编辑器界面

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word

一键粘贴Word内容,自动上传Word中的图片,保留文字样式。

Word转图片

一键导入Word文件,并将Word文件转换成图片上传到服务器中。

导入PDF

一键导入PDF文件,并将PDF转换成图片上传到服务器中。

导入PPT

一键导入PPT文件,并将PPT转换成图片上传到服务器中。

上传网络图片

一键自动上传网络图片,自动下载远程服务器图片,自动上传远程服务器图片

下载示例

点击下载完整示例

http://www.jsqmd.com/news/414002/

相关文章:

  • 如何安装使用Claude Code进行IntelliJ IDEA开发
  • 2026年永磁大风扇口碑榜揭晓,这些企业凭实力出圈!,工业散热风扇/工业大吊扇/工业大风扇,永磁大风扇企业哪家好 - 品牌推荐师
  • 聊聊碳黑厂,河南颜旭新型材料靠谱吗? - 工业设备
  • 教育平台C#如何封装支持分片上传的文件夹树形结构前端控件?
  • 央企项目.NET MVC如何实现医疗影像文件夹的目录结构动态解析上传?
  • 2026年家长必知:做得好的家庭教育咨询工作室有哪些,孩子网瘾/亲子关系修复/家庭教育咨询/叛逆期教育,家庭教育基地推荐 - 品牌推荐师
  • 2026年上海展厅公司精选推荐,打造独特展示空间新体验,产品三维动画/展厅公司/三维动画/宣传片,展厅公司公司排行榜单 - 品牌推荐师
  • 搞毫米波雷达多目标跟踪,Matlab这工具是真香。今天咱们掰碎了说2发4收TDM模式下的处理全流程,重点聊聊那些让萌新头疼的工程细节
  • 2026学术论文辅导好帮手,这些口碑企业推荐,考博择校指导/考博全周期辅导/考博一对一辅导,学术论文辅导公司选哪家 - 品牌推荐师
  • 从人工到AI:无人机如何重塑光伏电站的智能巡检与运维新范式
  • 2026年双伺服泵控数控折弯机价格及品牌推荐,哪家更靠谱 - 工业设备
  • 说说北京权威的离婚后财产纠纷律师推荐,哪家口碑好? - 工业设备
  • 2026年电工培训口碑学校:开启职业新篇章,UG培训/三坐标培训/走心机培训/非标机械设计培训,电工培训学校口碑排行 - 品牌推荐师
  • 发现交通事故的车辆受损情况数据集(1000+张图片已划分、已标注)| AI训练适用于目标检测任务
  • 2026年黑龙江口碑好的注塑尼龙由壬服务商推荐哪家 - mypinpai
  • 杭州诺丁山婚礼宴会中心靠谱不,服务质量好吗? - 工业品网
  • 电力弹簧资深厂商推荐,无锡地区有哪些靠谱的选择? - 工业品网
  • C++与机器学习框架的结合
  • Gemma 3n:面向移动设备的强大AI模型
  • 盘点合肥靠谱的短期美容培训学校,推荐几家优质品牌 - 工业设备
  • Fansly Downloader:实现媒体资源本地化管理的高效解决方案
  • 动物森友会存档编辑神器:NHSE零基础掌握高级数据修改技巧
  • 跨平台解决方案:轻量级工具wechat-need-web实现企业级无安装部署微信访问
  • 世界上没有任何一种文字能够像汉字一样,用 5 个基本元素撑起一个 5000 年不断的伟大文明!
  • 【认知雷达专栏】认知雷达波形设计与优化研究进展
  • 3.3 对话能力集成:多轮对话管理与上下文持久化实现
  • 如何实现健康数据跨平台高效同步?揭秘Zepp Life自动化解决方案
  • E-Hentai批量下载利器:如何实现图库资源的高效获取与管理
  • 宝安吸塑工厂哪家靠谱,深圳、佛山、广州地区推荐吸塑源头厂家 - mypinpai
  • 转行风口上的AI大模型开发,能不能挽救我的职业生涯?