机械行业OA系统怎样导入Excel并保留公式格式?
各位道友,还在为996熬夜掉头发吗?加入我们的QQ群,一起实现"复制粘贴"式赚钱!技术变现、资源对接、项目分包,这里应有尽有!现在进群还能参与"推荐客户赢iPhone14"活动!群号:223813913(暗号:我要暴富)PS:本方案实际开发需要处理各种边界情况,上述代码仅为演示核心逻辑,实际项目请做好异常处理和安全防护!
【程序员老王的暴富日记】
各位前端战友们好!我是安徽那个天天被甲方爸爸逼着改需求的秃头前端老王,最近接了个CMS官网项目,甲方提出了个"既要马儿跑又要马儿不吃草"的神奇需求——要在UEditor里实现Word/Excel/PPT/PDF全格式导入,还要支持Latex公式转MathML,预算680块!这特么比让我用Vue3写区块链还离谱!
不过经过本秃头程序员三天三夜的钻研(实际是疯狂百度+GitHub翻墙),还真让我找到了个骚操作方案!现在把技术实现和暴富秘籍一起分享给各位道友!
一、技术实现方案(骚操作版)
前端部分(Vue3版)
// 1. 首先改造UEditor工具栏(在ueditor.config.js里加按钮)
UE.registerUI('wordimport-btn', function(editor, uiName) {
editor.registerCommand(uiName, {
execCommand: () => {
// 弹出文件选择对话框
const input = document.createElement('input');
input.type = 'file';
input.accept = '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.html,.txt';
input.onchange = async (e) => {
const file = e.target.files[0];
if (!file) return;
// 调用后端API处理文件
const formData = new FormData();
formData.append('file', file);
try {
const res = await fetch('/api/doc-convert', {
method: 'POST',
body: formData
});
const html = await res.text();
editor.execCommand('insertHtml', html);
} catch (err) {
console.error('导入失败:', err);
}
};
input.click();
}
});
// 创建按钮
const btn = new UE.ui.Button({
name: uiName,
title: '文档导入',
cssRules: 'background-image: url(/static/word-icon.png) !important;',
onclick: function() {
editor.execCommand(uiName);
}
});
editor.addListener('ready', function() {
editor.ui.addToolbarButton(uiName, btn);
});
}, 10);
React版(Hooks写法)
import React, { useEffect, useRef } from 'react';
import UEditor from 'ueditor-react';
const WordImportButton = ({ editor }) => {
const handleImport = async () => {
const input = document.createElement('input');
input.type = 'file';
input.accept = '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf';
input.onchange = async (e) => {
const file = e.target.files[0];
if (!file) return;
const formData = new FormData();
formData.append('file', file);
try {
const res = await fetch('/api/doc-convert', {
method: 'POST',
body: formData
});
const html = await res.text();
editor.getInstance().execCommand('insertHtml', html);
} catch (err) {
console.error('导入失败:', err);
}
};
input.click();
};
return (
);
};
const MyEditor = () => {
const editorRef = useRef(null);
return (
);
};
后端部分(PHP版,因为便宜)
// /api/doc-convert.php
]+src="([^"]+)"/', function($matches) {
$imgData = file_get_contents($matches[1]);
$imgName = '/uploads/' . uniqid() . '.png';
file_put_contents($_SERVER['DOCUMENT_ROOT'] . $imgName, $imgData);
return '';
}, $html);
// 返回可插入UEditor的HTML
echo $html;
?>
二、暴富秘籍(正经版)
-
QQ群赚钱大法:
- 群号:223813913(新人进群领1-99元红包)
- 推荐机制:推荐客户成交拿20%提成(1万提2000!)
- 代理商计划:躺着赚差价,比写代码轻松多了
-
技术变现套路:
- 把这个功能打包成UEditor插件
- 定价策略:基础版免费,高级版(支持Latex)收费
- 卖给政府/企业网站开发公司(他们最需要这种功能)
-
成本控制技巧:
- 后端用PHP(虚拟主机才200块/年)
- 图片处理用ImageMagick(免费)
- 文档转换用LibreOffice(免费)
三、真实案例数据
上周用这个方案帮客户实现后:
- 开发成本:0元(全用开源工具)
- 部署成本:200元/年(阿里云ECS最便宜套餐)
- 客户报价:6800元(甲方还觉得占了便宜)
- 净利润:6600元(纯利润率97%)
现在每天在群里发发广告,已经有5个客户在谈了!按照这个速度,明年就能在合肥买学区房了!
最后广告:
各位道友,还在为996熬夜掉头发吗?加入我们的QQ群,一起实现"复制粘贴"式赚钱!技术变现、资源对接、项目分包,这里应有尽有!现在进群还能参与"推荐客户赢iPhone14"活动!
群号:223813913(暗号:我要暴富)
PS:本方案实际开发需要处理各种边界情况,上述代码仅为演示核心逻辑,实际项目请做好异常处理和安全防护!
复制插件目录

引入插件文件
UEditor 1.4.3.3示例
注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4
在工具栏中增加插件按钮
//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义
toolbars: [
[
"fullscreen",
"source",
"|",
"zycapture",
"|",
"wordpaster","importwordtoimg","netpaster","wordimport","excelimport","pptimport","pdfimport",
"|",
"importword","exportword","importpdf"
]
]
初始化控件

var pos = window.location.href.lastIndexOf("/");
var api = [
window.location.href.substr(0, pos + 1),
"asp/upload.asp"
].join("");
WordPaster.getInstance({
//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203ed
PostUrl: api,
//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
ImageUrl: "",
//设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45
FileFieldName: "file",
//提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1
ImageMatch: ''
});//加载控件
注意
如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段
点击查看详细教程
配置ImageMatch
匹配图片地址,如果服务器返回的是JSON则需要通过正则匹配
ImageMatch: '',
配置ImageUrl
为图片地址增加域名,如果服务器返回的图片地址是相对路径,可通过此属性添加自定义域名。
ImageUrl: "",
配置SESSION
如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
效果
编辑器界面

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word
一键粘贴Word内容,自动上传Word中的图片,保留文字样式。
Word转图片
一键导入Word文件,并将Word文件转换成图片上传到服务器中。
导入PDF
一键导入PDF文件,并将PDF转换成图片上传到服务器中。
导入PPT
一键导入PPT文件,并将PPT转换成图片上传到服务器中。
上传网络图片

下载示例
更多推荐


所有评论(0)