1.前言
很多时候会用到在线编辑保存Word,Excel,这时我们需要用到WebOffice。源代码到www.dsoframer.com,注册后即可下载,完全免费使用。已包含在附件中。
1.1 加载控件
因为用到了Active控件,所以只能在IE下使用,在火狐下会报错。使用时,需要将LoadWebOffice.js,weboffice_v6.0.5.0.cab放在指定的目录下,然后在页面中加载控件,如下:
加载控件,利用<SCRIPT src="LoadWebOffice.js"></SCRIPT>,加载的具体内容如下:
- var s = ""
- s += "<object id=WebOffice1 height=768 width='100%' style='LEFT: 0px; TOP: 0px' classid='clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5' codebase='weboffice_v6.0.5.0.cab#Version=6,0,5,0'>"
- s +="<param name='_ExtentX' value='6350'><param name='_ExtentY' value='6350'>"
- s +="</OBJECT>"
- document.write(s)
以上内容目的就是利用LoadWebOffice.js加载weboffice_v6.0.5.0.cab(Active控件)。
1.2 规范说明代码
WebOffice的早期版本,如果使用了<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 这个规范说明代码,否则的话死活也不会显示 控件区域,不过最新版本没有这个问题,经测试利用
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
都不会出现控件无法加载的问题。
2.使用
2.1 新建文档
- //新建Word
- document.all.FramerControl1.CreateNew("Word.Document");
- //新建Excel
- document.all.FramerControl1.CreateNew("Excel.Sheet");
2.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);
2.3 保存文档
- //保存到本地
- document.all.FramerControl1.Save("c:\1.doc",true);
- //保存到服务器
- //初始化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");
2.4 综合操作
更多具体的操作,大家可以去附件weboffice_v6.0.5.zip 中,找到main.js,然后里面有详细的操作方法。
- //进入留痕状态
- document.all.FramerControl1.SetTrackRevisions(1);
- //进入非留痕状态
- document.all.FramerControl1.SetTrackRevisions(0);
- //接受当前修订
- document.all.FramerControl1.SetTrackRevisions(4);
- //设置当前用户
- document.all.FramerControl1.SetCurrUserName("张三");
- //设置当前时间
- document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11");
- //在当前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::");
- //只有“新建”菜单可用
- document.all.FramerControl1.SetMenuDisplay(1);
- //只有“打开”菜单可用
- document.all.FramerControl1.SetMenuDisplay(2);
- //只有“打开”和“新建”菜单可用
- document.all.FramerControl1.SetMenuDisplay(3);
- //完全保护文档,密码为"pwd"
- document.all.FramerControl1.ProtectDoc(1,1,"pwd");
- //解除文档保护
- document.all.FramerControl1.ProtectDoc(0,1,"pwd");
- //显示修订留痕
- document.all.FramerControl1.ShowRevisions(1);
- //隐藏修订留痕
- document.all.FramerControl1.ShowRevisions(0);
- //文件头部插入文件
- 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);
- //大纲模式
- document.all.FramerControl1.ShowView(5);
- //设置文件只读密码
- document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord");
- //设置文件修改密码
- document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW");