未找到

未发布 Edraw Office Viewer component教程(三):将MS Word、Excel、PowerPoint嵌入到WPF应用程序中
by Harriet666 keys 分享 1494580929229
如何将Word、Excel、PowerPoint嵌入WPF应用程序?大部分人应该都记得可以将Excel图表嵌入到Word文档中的OLE技术,但该技术并不支持所有的Microsoft Office文档。它不支持表单中的多个MS Word实例。而Edraw office viewer component对于开发人员可以说是最简单的可以将Word文档、Excel工作表、PowerPoint演示文稿嵌入到WPF应用程序中的解决方案。
 
本文将演示如何逐步嵌入MS Word到wpf应用程序中。如果你没有officeviewer.ocx文件,请先安装。在组件安装文件夹中,你还可以找到wpf示例项目。
打开Visual Studio并创建一个新的WPF应用程序。
右键单击WpfApplication1解决方案。然后单击“Add”菜单并选择“User Control...”。

wpf项目中将会增加一个新的窗体。
选择“User Control”项。不是“User Control(WPF)”项。
双击解决方案面板中的UserControl1.CS。
打开“工具箱”面板,然后单击菜单中的“ Choose Items...”。
在弹出的“Choose Toolbox Items”对话框中,选择“Edraw Office Viewer Component”,然后单击“确定”。
现在,Edraw Office Viewer Component已添加到工具箱的“常规”选项卡中。在UserControl窗体中拖动它。
通过Visual Studio将AxEDofficeLib和EDOfficeLib添加到该解决方案中。
输入打开word文档的C#代码,并保护word文档的修改如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WpfApplication1
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public void Open()
{
axEDOffice1.OpenFileDialog();
}
public void Protect()
{
if (axEDOffice1.GetCurrentProgID() == "Word.Application")
{
axEDOffice1.ProtectDoc(2);
}
}
public void Print()
{
axEDOffice1.PrintPreview();
}
public void Close()
{
axEDOffice1.ExitOfficeApp();
}
}
}

最后,你需要为UserControl编写主机窗口。切换到Windows1.xaml文件,然后添加打开、保护、打印和关闭的按钮,如图所示。

添加以下c#代码来关联office component。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Open_Click(object sender, RoutedEventArgs e)
{
_host.Open();
}
private void Protect_Click(object sender, RoutedEventArgs e)
{
_host.Protect();
}
private void Print_Click(object sender, RoutedEventArgs e)
{
_host.Print();
}
private void Close_Click(object sender, RoutedEventArgs e)
{
_host.Close();
}
}
}

打开配置管理器。将Active Solution平台更改为x86选项。然后建立并运行。
Office Viewer component支持所有版本的MS Word。要将MS Excel或PowerPoint Visio、Project嵌入到WPF应用程序中,你只需要调用Open方法,如下所示:
public void Open()
{
//axEDOffice1.OpenFileDialog();
axEDOffice1.Open(sPath, "Word.Application");
axEDOffice1.Open(sPath, "Excel.Application");
axEDOffice1.Open(sPath, "PowerPoint.Application");
axEDOffice1.Open(sPath, "Visio.Application");
axEDOffice1.Open(sPath, "MSProject.Application");
}
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

未发布 新的JavaScript库邀请程序员使用Canvas进行创意编程
by Harriet666 keys 分享 1487837494989

首款专门用于LOB应用开发的JavaScript框架点击下载>>>

为了模糊技术和艺术之间的界限,Sandpit库使用JavaScript和Canvas 2D元素进行创意编程。

通过GitHub或NPM并内置在ECMAScript 6中,Sandpit仍然使用着一个可能会在1.0版本之前更改的API进行开发。“Sandpit的目标是规范和简化创建编码的过程,利用代码来做漂亮的东西,”文档介绍里提到。“不管是在2D还是3D中,通常都会绘制到Canvas元素中。”Sandpit使用dat.GUI(一个改变JavaScript中的变量的轻量级GUI)来管理设置。

未发布 串行端口监视器Serial Port Monitor v7.0.312发布丨附下载
by Harriet666 keys 分享 1496999958369
串行端口监视器Serial Port Monitor是专业、强大的系统实用程序,用于监测RS232/422/485 COM端口。它不但可以监测、显示、记录和分析系统中串行端口的所有活动,还可以跟踪应用程序或驱动程序开发、测试等过程中可能出现的问题,因此,它是优化串行设备最理想的一套程序。
 
【Serial Port Monitor最新版下载】
Serial Port Monitor v7.0.312更新内容

新增:
  • Modbus协议(RTU和ASCII)解码。
  • Modbus协议的新视图。
  • 用于Modbus协议的独立过滤器。
  • 监控会话比较。
  • 支持Windows Server 2016。
  • 将会话再现到串行端口的功能。
  • 64位GUI版本(当进程占用太多的RAM时,监控将不会中断)。
  • 视图之间的选择同步。
  • 表格视图的“注释”列。
  • 在工具栏中打开和关闭过滤器的功能。
  • 当监控不活动时,能够创建用于数据重定向的新文件。
  • 在表格视图中的第一个和最后一个突出显示的IRP之间的状态栏中显示总读/写数据统计信息。
  • 在转储视图中显示串行端口设置更改。
  • 在“转储”视图中选择显示哪些数据的选项:二进制、ASCII、端口设置。
  • 会话文件打开时,在状态栏中显示监控会话统计信息。
  • 能够将过滤器应用于特定的串行端口。
  • 在表格视图中显示应用程序尝试写入端口的Write事件的数据,除了已写入的数据。
  • 能够禁用终端视图的自动滚动。
  • 命令行选项允许将数据附加到文件而不是覆盖它。
  • 保存监视会话时的进度条。
改进:
  • 表格视图中的IRP现在显示“Line”视图中的转录提示。
  • 重新设计“新会话”窗口(所有可用的端口立即显示)。
  • 主窗口标题现在显示正在监视的串行端口。
  • 双击即可打开监控会话文件。
  • 可以通过将监控会话文件拖放到串行端口监视器窗口中来打开监视会话文件。
  • “新建会话”窗口中的串行端口现在按端口号而不是名称排序。
  • 当监视会话文件被打开时,监控不会自动启动。
  • “数据表示”选项将不允许现在每行设置超过100个字符,以提高性能。
修复:
  • 启用“保持最后100个IRP”时,内存泄漏(现在此选项可防止长时间监控期间的高内存消耗)。
  • 当硬件流量控制启用且连接另一端的串口未打开时,内置终端挂起。
  • 0d 0a字符显示不正确。
  • 当系统中出现新的串行端口时挂起。
  • 终端视图菜单选项关闭时禁用。
  • 监视进程启动时开始捕获选项。
  • 解析IOCTL_SERIAL_GET_PROPERTIES和IOCTL_SERIAL_LSRMST_INSERT事件。
  • 在打开大型监视会话文件时关闭串行端口监视器。
  • 串行端口监视ActiveX安装与串行端口监视器不一致。

试用、下载、了解更多产品信息请点击"咨询在线客服"   

1
未发布 网络安全工具FileAudit更新v5.5版本,更好地识别和分析异常的文件
by Harriet666 keys 分享 1517818072875
FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。
 
 
FileAudit v5.5新功能

FileAudit 5.5的发布侧重于帮助IT管理员更好地识别和分析异常的文件。
数据泄露必须要找到发生的来源,平均191天就会出现发现违规事件。如果受保护的数据驻留在文件服务器上,会存在明显的违反指示。通过监视文件服务器上受保护数据的访问和使用情况,可以根据异常活动来检测数据泄露。
 
详细活动概述-按用户
这个新的仪表板提供了关于指定用户已经访问或尝试访问的所有文件和文件夹的详细活动报告。从文件访问查看器或统计中单击任何用户以查看在前4周内执行的所有事件。
433a9a821f1b458aa3ea0be8e114fe89ojpg
  • 仪表板提供了关于用户访问和使用审计数据的关键信息:
  • A使用情况活动图表和统计数据 - 轻松查看活动的频率和数量,按天或周分组。
  • 该指定用户的文件删除和拒绝访问事件的总数。
  • 列出用户执行的所有访问事件的表格。
  • 前5个访问的文件。
 
详细活动概述-按文件或文件夹
这个新的仪表板提供了关于从所有用户访问指定文件或文件夹的详细活动报告。单击文件访问查看器或统计信息中的任何文件或文件夹路径可查看前4周内执行的所有事件。
744685d659614e85af77df700a5e26a4ojpg
  • 仪表板提供关于访问和使用特定数据集的关键信息:
  • A使用情况活动图表和统计数据 - 轻松查看活动的频率和数量,按天或周分组。
  • 特定文件或文件夹的文件删除和拒绝访问事件的总数。
  • 列出针对特定文件或文件夹执行的所有访问事件的表格。
  • 已访问此文件或文件夹的前5名用户。
     
完整事件详情
双击访问事件现在将显示完整的事件详细信息。
e984e47bcba647eb8641cc564b4317a2ojpg

关于存档数据库的报告
如果需要访问归档的记录,可以在安装文件夹中找到新的工具(FileAuditReporter)。这个工具可以让您轻松检索、分析和报告存档的数据。
 
发送通知和报告给Slack
将Slack与FileAudit集成可以帮助整个IT团队更容易跟踪问题和共享报告。来自FileAudit的任何消息(警报,计划报告,警告消息)都可以发送到Slack中的共享通道。
 
改进预定报告
现在有一个新的选项来保存所有的历史报告。(如果需要,您可以自动使用最新版本覆盖旧的预定报告)。
 
改进服务
能够在更改远程连接设置时重新启动FileAudit服务。

6

未发布 FILEminimizer Office,FILEminimizer Suite和FILEminimizer Server常见问题FAQ合集(一)
by Harriet666 keys 分享 1506590193036
 
1、我的序列号和注册信息都无法使用?

注册信息包括三部分:“序列号”,“字段 #1”以及“字段 #2”-要成功注册你的软件这些信息都是必须。
为了确保你的注册没有任何问题,请从发送给你的邮件中复制注册信息,然后粘贴到相应的注册字段。
请参考以下截图。
 
2、我忘记了我的注册信息和/或应用程序下载的链接,我怎么样才能重新找回它们?

请直接联系中国经销商重庆慧都科技有限公司
请提供给我们您的Cleverbridge相关信息。这些信息包含在您完成采购的确认邮件里面,和您的发票上面。
请注意如果没有这些信息的话,balesio将会收取您恢复注册信息的费用。
 
3、我可以得到技术支持吗?

每个注册的balesio用户都可以得到我们的技术支持。然后,因为我们的销售和支持团队会收到大量的提问,所有回复这些提问的优先权由以下因素决定:
  1. 拥有有效Premium Pack的注册用户(包括所有的软件升级,更新和技术支持的年费)
  2. 注册用户
  3. 提一般支持问题的非注册用户
对于提出支持请求的注册用户,请提供给我们您的Cleverbridge相关信息。这个信息可以在你完成购买后的确认邮件中找到和您的发票信息中找到。
 
4、我的支持请求需要提供什么样的信息?

当报告问题时,请提供包括以下的信息:
  1. 如果要求的话,您能重现问题吗?如果可以,怎么重现?
  2. 你在运行哪个版本的Windows操作系统(Windows XP、Windows Vista等等)?
  3. 你在运行balesio哪个版本的软件和产品(Help | “About FILEminimizer Office”)?请在你的问题报告中包括完整的“version”。
  4. 如果对话框中出现了错误的信息,请提供包括对话框和标题栏的文本信息。
5、我可以压缩什么类型的PowerPoint文件?

您能优化微软PowerPoint 97至2010创建的任何版本的PowerPoint文件。FILEminimizer完全支持Office 2010所有的新格式文件(PPTX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软PowerPoint格式,也是可以被优化的。
 
6、我可以压缩什么类型的Word文件?

您能优化微软Word 97至2010创建的任何版本的Word文件。FILEminimizer完全支持Office 2010所有的新格式文件(DOCX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软Word格式,也是可以被优化的。
 
7、我可以压缩什么类型的Excel文件?

您能优化微软Excel 97至2010创建的任何版本的Excel表格。FILEminimizer完全支持Office 2010所有的新格式文件(XLSX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软Excel格式,也是可以被优化的。
 
8、可作为哪个微软Outlook版本的插件?

Outlook 2000以后的都可作为插件。
 
9、可作为哪个IBM Lotus Notes版本的插件?

Lotus Notes 6.0以后的都可作为插件。
 
10、我压缩了我的文件,压缩后的文件很小,是怎么回事呢?

FILEminimizer优化图表,图片和包含在PowerPoint, Word 和 Excel文件中的嵌入对象。下面的一些因素可能解释压缩成小文件的结果:
  • 你在你的PPT或PPS幻灯片中包含了音频或视频文件
  • 你在大型的Excel表格上操作,这个表格包含了大量宏,但是却没包含图像,或少量的图像
  • 你的文件被加密了和/或在优化的时候,它正在使用中
  • 你正在设法优化已损坏或被破坏的文件
  • 你正设法优化版本非常老的文件(Office 95或更早)
11、我不能通过“打包/发送”或“邮件文件”按钮来发送我的文件。

此功能是使用Windows操作系统中的MAPI接口。操作系统通过这个程序接口,进行数据的交互,并将其发送到适当的电子邮件软件。如果
您的电子邮件软件不支持此MAPI接口,您将得到一个错误信息。请检查您的电子邮件程序是否支持这个接口,并检查这个软件是否被指定
为Internet选项中默认电子邮件程序。

12、我能采用批处理方式对几个文件进行选择和优化吗?
是的,当然可以。可有不同的方式来实现:
  1. 通过Windows Explorer或FILEminimizer搜索功能对您此处的文件进行浏览
  2. 选择几个文件或直接用CTRL + A选择全部文件
  3. 右键单击选定的文件,并在菜单中选择“FILEminimizer”,将所有的兼容文件加载到FILEminimizer中
  4. 如果FILEminimizer是打开的,您可直接将文件“拖拽”到程序中
  5. 您也可以使用工具栏上的“打开”选项,在FILEminimizer中选择你的文件进行优化

未发布 LEADTOOLS v19更新发布文档和医疗功能,增加Visual Studio 2017兼容性!
by Harriet666 keys 分享 1490165179812

LEAD Technologies发布了LEADTOOLS v19 SDK的重大更新,本次更新侧重于文档和医疗功能,其中一些功能在商业SDK市场中是前所未有的。包括第一个完整的商业Hanging Protocol SDK解决方案、大图像(以TB为单位)支持、文档格式支持以及更新各种识别技术,包含OCR、表单、OMR、条码、信用卡读卡器和Visual Studio 2017的兼容性。

LEADTOOLS v19 (Windows、Linux、IOS/macOS、Android)下载>>>

LEAD Technologies总裁Rich Little表示:“这次更新是LEAD继续加强LEADTOOLS以解决现实问题的一个很好的例子。我们非常高兴能够拥有第一个商业医疗查看器SDK,包括完整的DICOM Hanging Protocol、优化的大图像加载和一个新的超快速表单识别算法。26年前我和Moe创建LEAD时,我们从来没有想过可以加载1TB的图像。”

以下是一些主要更新内容:
  • 第一个商业性DICOM Hanging Protocol SDK
  • HTML5 Zero-footprint 医疗Web浏览器 - 新的功能和增强
  • DICOM存储服务器 - 新功能
  • 更高效地处理DICOM Pixel数据
  • SDK识别技术 - 增强对OCR、表单 & OMR以及新的复合条形码的识别
  • 文档查看器 - 新的功能和增强
  • 文档格式 - 功能增强
  • 信用卡读卡器SDK - 支持更多平台
另外,本次更新后LEADTOOLS v19可以与Visual Studio 2017实现兼容!
点击查看具体功能更新日志>>>
未发布 微软发布了一系列网络安全新功能(关于Windows和Office 365)
by Harriet666 keys 分享 1487581445991

最新Microsoft Office 365 商业版下载>>>

最新Microsoft Office 365 商业协作版下载>>>

最新Microsoft Office 365 商业高级版下载>>>

微软在旧金山召开的大规模RSA安全会议中发布了一系列新的网络安全功能,Windows和Office 365的新功能旨在帮助企业实现网络安全。

在Windows前端增加了使用Windows Hello的本地Active Directory功能,并允许Windows 10系统登录。微软还推出了新的工具,通过向企业提供将组织策略迁移到云托管的工具来帮助他们更好的使用移动设备来管理产品。

更重要的是,微软推出了一个新的工具可以帮助客户配置Surface硬件,例如禁用平板电脑的相机功能。 Office 365客户可以获得新的安全评估工具和显示安全威胁信息的特殊服务。如同RSA安全会议中宣布的一样,微软一直在提高他的安全功能。

【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
by Harriet666 keys 分享 1519722017492
leadtools提供了封装后的dicom插件,可以非常方便的开发出dicom通讯部分的组件,本篇教程讲解如何使用相关的接口进行代码编写,实现Dicom协议中的CStore存储操作。
 
1.用vs2015创建一个winform项目,引用下面的dll,并在代码里引用
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom.Scu;
using Leadtools.MedicalViewer;
using System.Net;
using System.IO;
 
2.创建下面的对象
// CStore highlevel 客户端和服务端对象
        private StoreScu _cstore;
        private DicomScp _server = new DicomScp();
 
3.初始化服务器和客户端参数,
本次用的服务器即是开发包中运行pacs服务器设置程序后,创建的L19_PACS_SCP64
private void initServer() {
            _server = new DicomScp();
            _server.AETitle = "L19_PACS_SCP64";
            _server.PeerAddress = IPAddress.Parse("10.32.1.75");
            _server.Port = 534;
            _server.Timeout = 30;
        }
private void initCstore() {
            _cstore = new StoreScu();
            _cstore.AETitle = "L19_CLIENT64";
            _cstore.HostPort = 1030;
            //存储成功后
            _cstore.AfterCStore += _cstore_AfterCStore;
        }
 
4.执行存储命令
private void 存储ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filename ="D:\\Xa.dcm";
            _cstore.Store(_server, filename);

        }

保存成功后即可在服务器管理器中,或者使用客户端查询已经存储的图像。
未发布 2D/3D文档查看器ABViewer发布v12,大大提高PDF转DWG的速度丨附下载
by Harriet666 keys 分享 1497596728894
ABViewer是一款高质量的2D/3D文档查看器,可提供专业的浏览、编辑和转换功能,支持30多种光栅和矢量图形格式,其中包括AutoCAD DWG, DXF, DWF, Hewlett-Packard HPGL, PLT, HGL, CGM, SVG, IGES/IGS, STEP/STP, STL, 3DS, TIFF, BMP, JPG, GIF等。

【ABViewer 12最新版下载>>>】
ABViewer 12支持AutoCAD®DWG 2018、PDF转DWG速度更快、DWG/DXF转G-code。
ABViewer始终与时俱进,CAD应用程序的新版本ABViewer 12主要用于DWG/DXF和其他2D和3D CAD格式,以及三个主要亮点。

导入AutoCAD®DWG 2018

无论你是在CAD行业工作还是偶尔接收CAD图纸,ABViewer 12始终能够打开所有版本的DWG文件。支持导入最新版本的绘图文件格式 - AutoCAD®DWG 2018。
9e98f9609cea49b4bd3dc4882b979993ojpg

提高PDF转DWG的速度

ABViewer 12中PDF到DWG转换速度大大加快。以前,转换大文件需要很多时间,现在你无需浪费这些时间了。一些文件的转换就在眨眼之间!
bacee89af4214eab84cf49d63cd79b65ojpg

DWG/DXF转换为G-code

许多使用数控机床的人需要从CAD文件中生成G-code。新版本的ABViewer可以实现这个目标。
你可以使用ABViewer创建铣削和切割数控机床的G代码。只需加载你的DWG或DXF文件,调整设置,ABViewer将从你的图纸中生成G-code并将其保存为NC文件格式。
0cb278f4c3bc41e19013d58abc678f9bojpg
 
未发布 矢量图形引擎库VectorDraw Developer Framework v7.7012.0.2发布丨附下载
by Harriet666 keys 分享 1499325700094
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
 
VectorDraw Developer Framework点击下载>>>
 
VectorDraw Developer Framework(VDF)v7.7012.0.2更新内容:

WebJS

新增需求(7.7012.0.1)
  • 70001107 支持vdPolyface对象的3d形状和GradientColors
  • 70001111 获取实体边界框
漏洞(7.7012.0.1)
  • 70001098 vdSelectionModified事件返回不正确
  • 70001108 具有厚度的vdPolyline的osnaps无法显示

Engine

新增需求(7.7012.0.1)
  • 70001096 无法选择带有窗口选择的多面体
  • 70001105 改进GradientColors
  • 70001106 cmdMultiline自我解析
漏洞(7.7012.0.1)
  • 70001102编辑文字时EditText的问题
  • 70001109如果在没有GetGripSelection方法的情况下添加选择,则不会引发GripModified事件
  • 70001110 Mtext呈现不正确
  • 70001113 3D模式中的文本线型显示错误

试用、下载、了解更多产品信息请点击"咨询在线客服"  

VectorDraw File Converter


 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  2. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  3. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  4. Node.js 打印vite react+go项目目录树
  5. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  6. Windows与Mac通过git ssh和rsync实现文件共享互传
  7. Windows与Mac通过git ssh和scp实现文件共享互传
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA