日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...

發(fā)布時間:2023/12/1 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

javascript下用ActiveXObject控件替換word書簽,將內容導出到word后打印第2/2頁

更新時間:2008年06月21日 22:57:31 ? 作者:

由于時間比較緊,沒多的時候去學習研究上述工具包,現(xiàn)在用javascript操作ActiveXObject控件,用替換word模板中的書簽方式解決。

export2word.js代碼:

/**

*?

?Title:?用word書簽替換的方式將內容導出到word

*?

?Description:?**

*?

?Copyright:?Copyright?(c)?2007-2010?

*?

?Company:?**?

*?@author?zhu

*?@version?1.0

*/

var?baseVoListObj?=?function(){

this.volist?=?new?Array();

this.cols?=?new?Array();

this.widths?=?new?Array();

}

var?WordApp?=?function(wordTplPath){

var?wordObj?=?new?ActiveXObject("Word.Application");

if(wordObj==null){

alert(?"不能創(chuàng)建Word對象!");

}

wordObj.visible=false;

this.wordObj?=?wordObj;

this.docObj?=?this.wordObj.Documents.Open(getRootPath()?+?wordTplPath);

}

WordApp.prototype.closeApp?=?function(){

if?(this.wordObj?!=null){

this.wordObj.Quit();

}

}

WordApp.prototype.replaceBookmark?=?function(strName,content,type){

if?(this.wordObj.ActiveDocument.BookMarks.Exists(strName))?{

if?(type?!=?null?&&?type?==?"pic")?{//圖片

var?objDoc?=?this.wordObj.ActiveDocument.BookMarks(strName).Range.Select();

var?objSelection?=?this.wordObj.Selection;

objSelection.TypeParagraph();

//alert(getRootPath()+content);

var?objShape?=?objSelection.InlineShapes.AddPicture(getRootPath()+content);

}

else?{

this.wordObj.ActiveDocument.BookMarks(strName).Range.Select();

this.wordObj.Application.selection.Text?=?content;

}

}else{

//alert("標簽不存在");

}

}

WordApp.prototype.replaceBookmarkUsevo?=?function(voObj){

if(typeof?voObj?!=?"object"){

alert("請輸入正確的vo對象");

}else{

for(var?i?in?voObj){

this.replaceBookmark(i,voObj[i]);

}

}

}

WordApp.prototype.replaceBookmarkUsepicvo?=?function(voObj){

if(typeof?voObj?!="object"){

alert("請輸入正確的vo對象");

}else{

for(var?i?in?voObj){

this.replaceBookmark(i,voObj[i],"pic");

}

}

}

WordApp.prototype.replaceBookmarkUsevolist?=?function(strName,voListObj){

if(typeof?voListObj?!=?"object"){

alert("參數應為數組類型");

}else{

var?row?=?voListObj.volist.length;

var?col?=?voListObj.cols.length;

var?objDoc?=?this.wordObj.ActiveDocument.BookMarks(strName).Range;

var?objTable?=?this.docObj.Tables.Add(objDoc,row,col)?;//插入表格

for?(var?i?=?0;?i?

for(var?j=0;?j

//todo?列表里面如果有圖片類型不支持,需要判斷

objTable.Cell(i+1,j+1).Range.InsertAfter(voListObj.volist[i][voListObj.cols[j]]);

var?width?=?voListObj.widths[j];

if(width.indexOf("px")!=-1){

objTable.Cell(i+1,j+1).Width?=?(width.substr(0,width.length-2)/100)?*?28.35;//1厘米=28.35磅

}

}

}

//objTable.AutoFormat(16);

objTable.Borders.InsideLineStyle?=?1

objTable.Borders.OutsideLineStyle?=?0;

}

}

WordApp.prototype.getSingleVo?=?function(formName,arrayObj){//第二個參數可以為空,不填時默認為表單里的所有元素

var?formObj?=?document.forms[formName];

if(formObj!=null){

if(arrayObj!=null){

if(arrayObj?instanceof?Array){

var?vo?=?{};

for(var?i=0;i

if(formObj.elements[arrayObj[i]]!=?undefined?){

eval("vo."?+?arrayObj[i]?+?"?=?formObj.elements[arrayObj[i]].value;");

}

}

//alert(objToString(vo));

return?vo;

}else{

alert("弟二個參數應為數組類型");

}

}else{

var?vo?=?{};

for(var?i=0;i

eval("vo."?+?formObj.elements[i].name?+?"?=?formObj.elements[i].value;");

}

return?vo;

}

}else{

alert("第一個參數表示的表單不存在");

return?null;

}

}

WordApp.prototype.getVoList?=?function?(formName,arrayObj){//表單名,屬性數組(可以為空)

//var?formArray?=?document.forms[formName];

var?formArray?=?document.getElementsByName(formName);

if?(formArray?!=?null)?{

if?(arrayObj?instanceof?Array)?{

var?voListObj?=?new?baseVoListObj();

for(var?i=0;i

var?vo?=?{};

for(var?j=0;j

if(formArray[i].elements[arrayObj[j]]!=?undefined?){

eval("vo."+arrayObj[j]+"?=?formArray[i].elements[arrayObj[j]].value;");

if(i==0){//第一次的時候定義有效屬性和寬度

voListObj.cols.push(arrayObj[j]);

voListObj.widths.push(formArray[i].elements[arrayObj[j]].style.width);

}

}

}

voListObj.volist.push(vo);

}

return?voListObj;

}else{

var?voListObj?=?new?baseVoListObj();

for(var?i=0;i

var?vo?=?{};

for(var?j=0;j

eval("vo."+formArray[i].elements[j].name+"?=?formArray[i].elements[j].value;");

if(i==0){//第一次的時候定義寬度

voListObj.cols.push(formArray[i].elements[j].name);

voListObj.widths.push(formArray[i].elements[j].style.width);

}

}

voListObj.volist.push(vo);

}

return?voListObj;

}

}else{

return?null;

}

}

function?objToString(obj){

if(obj?instanceof?Array){

var?str="";

for(var?i=0;i

str+="[";

for(var?j?in?obj[i]){

str+=j+"="+obj[i][j]+"?";

}

str+="]\n";

}

return?str;

}else?if(obj?instanceof?Object){

var?str="";

for(var?i?in?obj){

str+=i+"="+obj[i]+"?";

}

return?str;

}

}

function?getRootPath()

{

var?location=document.location;

if?("file:"?==?location.protocol)?{

var?str?=?location.toString();

return?str.replace(str.split("/").reverse()[0],?"");

}

var?pathName=location.pathname.split("/");

return?location.protocol+"//"+location.host+"/"+pathName[1]+"/";

}

先說到這里吧,以后有更好的再更新,希望對大家有用。

相關文章

本文通過實例給大家介紹了JavaScript中push(),join() 的知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09

JavaScript缺少塊級作用域,沒有private修飾符,但它具有函數作用域。作用域的好處是內部函數可以訪問它們的外部函數的參數和變量(除了this和argument2011-12-12

這篇文章主要介紹了js使用Array.prototype.sort()對數組對象排序的方法,實例分析了Array.prototype.sort()的原理與相關的使用技巧,需要的朋友可以參考下2015-01-01

這篇文章主要介紹了javascript基于原型鏈的繼承及call和apply函數用法,結合實例形式較為詳細的分析了javascript中繼承的概念、創(chuàng)建方法以及call和apply函數的功能與使用技巧,需要的朋友可以參考下2016-12-12

這篇文章主要為大家詳細介紹了Bootstrap實現(xiàn)模態(tài)框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09

10個實用的腳本工具,其實就是將代碼拷貝到IE地址欄中運行2010-05-05

多年以來,IE一直都是最難于調試JavaScript 錯誤的瀏覽器。IE給出的錯誤消息一般很短又語焉不詳。而且上下文信息也很少,有時甚至一點都沒有。下面幾小節(jié)將分別探討一些在IE中難于調試的JavaScript 錯誤2016-11-11

項目中經常需要導出Excel文件,不在服務器端處理而是富客戶端采用Javascript腳本處理數據并導出文件2014-05-05

這篇文章主要介紹了webpack 從指定入口文件中提取公共文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11

這篇文章主要介紹了JS+html5實現(xiàn)異步上傳圖片顯示上傳文件進度條功能,結合完整實例形式分析了JavaScript前端結合HTML5實現(xiàn)post文件上傳與進度條顯示相關操作技巧,需要的朋友可以參考下2019-11-11

最新評論

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。