LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

WEB下使用的OFFICE控件介绍

admin
2013年11月10日 14:4 本文热度 7836

首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件(前提是browser已经安装OFFICE)。
最近一个项目需要用到这个玩意,经过不泄努力的百度和GOOLE,发现Office网络文档控件资源,目前国产的有以下几款:

一、iWebOffice2006
江西金格网络科技有限责任公司
http://www.goldgrid.com/DownLoad/index.asp#Item24
我的简单意见:需要安装服务器端组件,并进行一些COM+组件设置,当然客户端控件也是需要安装的。它的网络通讯都要经过它自己的组件和控件来进行,个人嫌麻烦,不建议使用。

二、NTKO OFFICE文档控件
重庆软航科技有限公司
http://www.ntko.com/
我的简单意见:它的网站上有一年免费使用的版本。这个只需要客户端控件,个人试用效果还可以,建议使用。偶已经破解4.0.0.9版本,可以用到9999年12月31日。但是它有个缺点,就是控件中有2个标题栏,很讨厌。网上传播很广的3.0.0.7破解版也是这样。

三、WebEditor 文档控件系列
广州帝龙科技   
Http://www.dragongod.com
我的简单意见:其实这个产品和iWebOffice2006很相似,真怀疑它们的来历。不建议使用。

四、WebOffice网络文档控件
北京点聚信息技术有限公司
http://www.dianju.cn/p/weboffice/

我 的简单意见:这个公司的WebOffice控件完全免费,功能也很不错,但是实际测试后发现,和WEB页面的一些元素定位、显示不是很兼容。比如如果给这 个控件定义一个style="display:none"的属性的话,运行结果是这个控件会跳出页面,单独显示一个窗口。但它毕竟是免费的,个人推荐使 用。

五、soaoffice网络文档控件
北京科翰软件有限公司
http://www.kehansoft.com/
我的简单意见:这个公司的Office控件使用极其麻烦,因为它不是独立的,是和其他控件捆绑的,需要安装服务器端软件,我是坚决不用的。

六、双进WORD网络文档控件
南京双进科技咨询有限公司
http://www.sjtsoft.com
我的简单意见:没找到演示下载,而且也只有word支持,不要去试了吧

七、DSOFramer网络文档控件
http://www.dsoframer.com/
我的简单意见:这个是免费开源的,很不错,建议使用。特别建议有时间,有兴趣的朋友去看看。其实这个和点聚公司的那个WebOffice很像的,个人觉得点聚用的就是这个DSOFramer代码。

除双进以外,以上各个Office网络文档控件的详细介绍、说明及演示代码在官方网站都有下载,我就不说了,这里提供偶自己亲手破解时间限制到9999年12月31号的NTKO OFFICE文档控件4.0.0.9演示版本。

特别注意啊,这个ocx是没有经过数字签名的,是不能通过IE的ACTIVEX直接下载使用的,可以通过手工注册或者做个数字签名。这个操作就不多说了,网上教程一找一大把。

另外,各OA系统,ERP软件等与OA有关的软件中一般都包含了Office网络文档控件,而且这些都是OEM的,可以永久免费使用,有兴趣的朋友可以去找找啊。

关于NTKO OFFICE文档控件,我这里也提供一个“中国兵器工业信息中心通达科技"的”Office Anywhere 3.0"OEM的,里面的是4.0.0.6的版本,使用的时候需要在object中加入以下代码:

<param name="MakerCaption" value="中国兵器工业信息中心通达科技">
<param name="MakerKey" value="86A1BE7CFEC466B6186E5425AFABB417B6016D68">
<param name="ProductCaption" value="Office Anywhere 3.0">
<param name="ProductKey" value="65F867689D7FF5CD02FBE4AA23764306F715A9E2">  
这样就成了OEM正式版的了。

http://www.cnblogs.com/xuneng/archive/2009/11/10/1599890.html

-----------------------------------推荐免费好用的Web在线Office(Word)编辑控件------------------------

DSOFramer2.2.0.8
dso接口说明

版本修改记录:
V2.2.0.2修改:
            修改了HttpPost相对路径的一些问题。
V2.2.0.0增加:
            [id(0x00010041), helpstring("Get Rev Index")]
            HRESULT GetRevCount( [out,retval] long * pbool);

            [id(0x00010042), helpstring("Get Rev Index Info")]
            HRESULT GetRevInfo([in] long lIndex, [in]   long lType, [out,retval] BSTR* pbool);

            [id(0x00010043), helpstring("Set Doc Prop")]
            HRESULT SetValue([in] BSTR strValue, [in]   BSTR strName, [out,retval] long* pbool);

            [id(0x00010044), helpstring("Set Doc Variable")]
            HRESULT SetDocVariable([in] BSTR strVarName, [in]   BSTR strValue,[in] long lOpt, [out,retval] long* pbool);

            [id(0x00010045), helpstring("Save page To Doc")]
            HRESULT SetPageAs([in] BSTR strLocalFile, [in]   long lPageNum, [in]   long lType,[out,retval] long* pbool);

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

LoadDso.js

var s = ""
s += "<OBJECT id=DSOFramer align='middle' style='LEFT: 0px; WIDTH: 100%; TOP: 0px; HEIGHT: 100%'"
s += "classid=clsid:00460182-9E5E-11D5-B7C8-B8269041DD57 codeBase=DSOFramer.ocx#Version=2,2,0,0' >"
s += "</OBJECT>"
document.write(s)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
接口文档:

/*
1.新建
*/
//新建Word
document.all.FramerControl1.CreateNew("Word.Document");
//新建Excel
document.all.FramerControl1.CreateNew("Excel.Sheet");

/*
2.打开文件
*/
//打开制定的本地文件
document.all.FramerControl1.Open("C:\\TestBook.xls");
//制定用Word来打开c:\plain.txt文件
document.all.FramerControl1.Open("C:\\Plain.txt",false, "Word.Document");
//打开服务器的文件
document.all.FramerControl1.Open "https://secureserver/test/mytest.asp?id=123",true, "Excel.Sheet", "MyUserAccount", "MyPassword");
//打开服务器的文件
document.all.FramerControl1.Open("http://localhost/1.doc", true);

/*
3.保存文件
*/
//到本地
document.all.FramerControl1.Save("c:\\1.doc",true);
//服务器
/*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据
bool HttpInit();
bool HttpAddPostString(BSTR strName, BSTR strValue);
bool HttpAddPostCurrFile(BSTR strFileID, BSTR strFileName);
BSTR HttpPost(BSTR bstr);       
*/

//初始化Http引擎
document.all.FramerControl1.HttpInit();
//增加Post变量
document.all.FramerControl1.HttpAddPostString("RecordID","20060102200");
document.all.FramerControl1.HttpAddPostString("UserID","李局长");
//上传打开的文件
document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc");
//执行上传动作
document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp");

/*
4.修订留痕
*/
//进入留痕状态
document.all.FramerControl1.SetTrackRevisions(1);
//进入非留痕状态
document.all.FramerControl1.SetTrackRevisions(0);
//接受当前修订
document.all.FramerControl1.SetTrackRevisions(4);

/*
5.设置当前用户
*/
document.all.FramerControl1.SetCurrUserName("张三");       

/*
6.设置当前时间(笔迹留痕会显示("Like 2006:02:07 11:11:11")
*/
document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11");

/*
7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了
SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName)
strFieldName:书签名
strValue:要设置的值
strCmdOrSheetName:
命令
::ADDMARK:: 添加BookMark
::DELMARK::       删除这个BookMark
::GETMARK:: 定位到这个BookMark
::FILE::                      插入的是文件
::JPG::        插入的是图片
一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。
*/
//在当前WORD位置插入标签,标签名为"book1",数值为"test"
document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::");

//设置书签"Time",数值为"2006-03-16 22:22:22"
document.all.FramerControl1.SetFieldValue("Time","2006-03-16 22:22:22","");

//在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc" 这样,红头就自动插进去了
document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::");

/*
8.设置菜单显示情况
BOOL SetMenuDisplay(long lMenuFlag)
lMenuFlag为以下数值的组合
#define MNU_NEW                      0x01
#define MNU_OPEN                      0x02
#define MNU_CLOSE                       0x04
#define MNU_SAVE                      0x08
#define MNU_SAVEAS                   0x16
#define MNU_PGSETUP                   0x64
#define MNU_PRINT                       0x256
#define MNU_PROPS                       0x32
#define MNU_PRINTPV                   0x126
*/
//只有“新建”菜单可用
document.all.FramerControl1..SetMenuDisplay(1);
//只有“打开”菜单可用
document.all.FramerControl1.SetMenuDisplay(2);
//只有“打开”和“新建”菜单可用
document.all.FramerControl1.SetMenuDisplay(3);

/*
9.保护文档和解保护文档
lProOrUn:1:保护文档;0:解除保护
lProType:  
wdNoProtection = -1,
wdAllowOnlyRevisions = 0,
wdAllowOnlyComments = 1,
wdAllowOnlyFormFields = 2
strProPWD:密码
*/
//完全保护文档,密码为"pwd"
document.all.FramerControl1.ProtectDoc(1,1,"pwd");
//解除文档保护                
document.all.FramerControl1.ProtectDoc(0,1,"pwd");

/*
10.显示或隐藏修订内容
ShowRevisions(long nNewValue)
nNewValue = 0 则隐藏修订
      = 1 则显示修订
*/
//显示修订留痕
document.all.FramerControl1.ShowRevisions(1);
//隐藏修订留痕
document.all.FramerControl1.ShowRevisions(0);


/*
11.插入合并文件,
strFieldPath 文件路径,可以是http,ftp的路径

pPos = 0 //当前鼠标位置
1;文件开头
2;文件末尾

pPos的第4位为1的时候,代表插入的是图片
InSertFile(BSTR strFieldPath, long lPos)
*/
//文件头部插入文件
document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1);
//文件尾部插入文件
document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2);
//当前光标位置插入文件
document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0);

//文件头部插入图片
document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9);
//文件尾部插入图片
document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10);
//当前光标位置插入图片
document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8);

/*
0x31. 文档另存为
            HRESULT SaveAs([in] VARIANT strFileName, [in] VARIANT dwFileFormat, [out,retval] long* pbool);       
参数:
       strFileName:文件本地路径,如c:\\11.doc
       dwFileFormat: 文件格式
dwFileFormat的数值为:
Excel: Type
enum XlFileFormat
{
xlAddIn = 18,
xlCSV = 6,
xlCSVMac = 22,
xlCSVMSDOS = 24,
xlCSVWindows = 23,
xlDBF2 = 7,
xlDBF3 = 8,
xlDBF4 = 11,
xlDIF = 9,
xlExcel2 = 16,
xlExcel2FarEast = 27,
xlExcel3 = 29,
xlExcel4 = 33,
xlExcel5 = 39,
xlExcel7 = 39,
xlExcel9795 = 43,
xlExcel4Workbook = 35,
xlIntlAddIn = 26,
xlIntlMacro = 25,
xlWorkbookNormal = -4143,
xlSYLK = 2,
xlTemplate = 17,
xlCurrentPlatformText = -4158,
xlTextMac = 19,
xlTextMSDOS = 21,
xlTextPrinter = 36,
xlTextWindows = 20,
xlWJ2WD1 = 14,
xlWK1 = 5,
xlWK1ALL = 31,
xlWK1FMT = 30,
xlWK3 = 15,
xlWK4 = 38,
xlWK3FM3 = 32,
xlWKS = 4,
xlWorks2FarEast = 28,
xlWQ1 = 34,
xlWJ3 = 40,
xlWJ3FJ3 = 41,
xlUnicodeText = 42,
xlHtml = 44
};
Word: Type
enum WdSaveFormat
{
wdFormatDocument = 0,
wdFormatTemplate = 1,
wdFormatText = 2,
wdFormatTextLineBreaks = 3,
wdFormatDOSText = 4,
wdFormatDOSTextLineBreaks = 5,
wdFormatRTF = 6,
wdFormatUnicodeText = 7,
wdFormatEncodedText = 7,
wdFormatHTML = 8
};
PPT:
enum PpSaveAsFileType
{
ppSaveAsPresentation = 1,
ppSaveAsPowerPoint7 = 2,
ppSaveAsPowerPoint4 = 3,
ppSaveAsPowerPoint3 = 4,
ppSaveAsTemplate = 5,
ppSaveAsRTF = 6,
ppSaveAsShow = 7,
ppSaveAsAddIn = 8,
ppSaveAsPowerPoint4FarEast = 10,
ppSaveAsDefault = 11,
ppSaveAsHTML = 12,
ppSaveAsHTMLv3 = 13,
ppSaveAsHTMLDual = 14,
ppSaveAsMetaFile = 15,
ppSaveAsGIF = 16,
ppSaveAsJPG = 17,
ppSaveAsPNG = 18,
ppSaveAsBMP = 19
};
  
*/
           
           
/*
0x32. 删除本地文件
                     HRESULT DeleteLocalFile([in] BSTR strFilePath);       
参数:
       strFileName:文件本地路径,如c:\\11.doc                     
*/            

/*
0x33.创建临时文件
            HRESULT GetTempFilePath([out,retval] BSTR* strValue);       
返回:
临时文件的路径地址。使用完后,用DeleteLocalFile 删除

*/

/*
0x34.设置文档显示模式
            HRESULT ShowView([in] long dwViewType, [out,retval] long * pbool);       
dwViewType的可取值为:
enum WdViewType
{
wdNormalView = 1,
wdOutlineView = 2,
wdPrintView = 3,
wdPrintPreview = 4,
wdMasterView = 5, //这个是大纲
wdWebView = 6
};
*/
//大纲模式
document.all.FramerControl1.ShowView(5);



/*
0x39:下载远程文件
            HRESULT DownloadFile( [in] BSTR strRemoteFile, [in] BSTR strLocalFile, [out,retval]   BSTR* strValue);       
参数:
      strRemoteFile:远程路径地址,http or Ftp
      strLocalFile: 本地保存地址,if strLocalFile == NULL then Create Temp File and return TempFile's Path

*/

/*
0x40:增加Http上传时候的,附加其他文件
            HRESULT HttpAddPostFile([in] BSTR strFileID, [in]   BSTR strFileName, [out,retval] long* pbool);
参数:
      strFileID:文件的ID,供服务器端页面解析
      strFileName: 本地文件地址

*/


/*
0x41,0x42.获取详细的修订信息。
GetRevCount( [out,retval] long * pbool);
GetRevInfo([in] long lIndex, [in]   long lType, [out,retval] BSTR* pbool);
例子如下
*/
var vCount;
vCount = document.all.FramerControl1.GetRevCount();
alert(vCount);
var vOpt = 0;
var vDate;
for(var i=1; i<= vCount; i++){
       vOpt = document.all.FramerControl1.GetRevInfo(i,2);
       if("1" == vOpt){
            vOpt = "插入";
       }else if("2" == vOpt){
            vOpt = "删除";
       }else{
            vOpt = "未知操作";
       }
       vDate = new String(document.all.FramerControl1.GetRevInfo(i,1));
       vDate = parseFloat(vDate);
       alert(vDate);
       dateObj = new Date(vDate);

   alert(dateObj.getYear() + "年" + dateObj.getMonth() + 1 + "月" + dateObj.getDate() +"日" +   dateObj.getHours() +"时" +   dateObj.getMinutes() +"分" +   dateObj.getSeconds() +"秒" );
       alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.FramerControl1.GetRevInfo(i,3));
}

/*
0x43.设置基本信息:
            HRESULT SetValue([in] BSTR strValue, [in]   BSTR strName, [out,retval] long* pbool);

1.设置文件只读密码
       SetValue("password","::DOCPROP:PassWord");
2.设置文件修改密码
       SetValue("password","::DOCPROP:WritePW");
返回值:
0 正确
-1:不支持此命令,请确定您的第二个参数没有传错
-127:异常
*/
//设置文件只读密码
document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord");
//设置文件修改密码
document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW");

/*
0x44.设置文档变量,这个很少能用到
            HRESULT SetDocVariable([in] BSTR strVarName, [in]   BSTR strValue,[in] long lOpt, [out,retval] long* pbool);

strVarName: 变量名
strVlaue:变量值
lOpt: 操作类型,
按位
第一位为1:   表示update域关联的
第二位为1:   表示如果没有这个变量则添加
第三位为1:   未来支持
return:
0:OK
-127:异常
*/
/*
0x45: 分页保存
HRESULT SetPageAs([in] BSTR strLocalFile, [in]   long lPageNum, [in]   long lType,[out,retval] long* pbool);
strLocalFile:本地路径
lPageNum:页数
*/


该文章在 2023/12/20 22:49:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved