向于心的WPS JavaScript 的代码学习和测验

系列文章目录

向于心的WPS JavaScript 的代码学习和测验


前言

最近发现WPS自带了脚本宏编辑器 ,而我又想学 JavaScript,
2009年的电脑居然 可以运行WPS,它里面就包含了JavaScript,我一看就乐坏了,连运行环境都不用搭建了,既然WPS JS与我和2009年的电脑有缘,那我们就一起玩玩吧.


1.乘法口诀表代码

function 乘法口诀表(){
	var r=1
	var c=1
	for(r;r<10;r++){
		c=1
		for(c;c<r+1;c++){
		  ThisWorkbook.Sheets('sheet2').Cells(r,c).Value2=c+'×'+r+'='+(r*c)
		}
	}
}

2.关于find和findnext涵数的组合使用

 function mf()
 {//关于find和findnext涵数的组合使用 
  //ThisWorkbook.Sheets('sheet2').
     let f=new Object
  	 f=ThisWorkbook.Sheets('Sheet1').Range("A:A").Find("4", ThisWorkbook.Sheets('Sheet1').Range("A1"), -4176, xlPart, xlByRows, xlNext, false, false, true);	 
  	 //这行代码是查找含有4的单元格
  	 let r=f.Row   
  	 ThisWorkbook.Sheets('Sheet2').Cells(f.Row,2).Value2=f.Row
  	 f=ThisWorkbook.Sheets('Sheet1').Range("A:A").FindNext(f)
  	 ThisWorkbook.Sheets('Sheet2').Cells(f.Row,2).Value2=f.Row
 	  //上面的代码可以运行,是关于find和findnext涵数的组合使用 

 }

3.我自己写的数据查找函数

我写了一个Find+FindNext封装函数,希望对大家有用.

function FindFun(Findwhat,FindArea,Compare){
 	//这是一个我自己写的数据查找涵数
 	//Findwhat要查找的数据
 	//FindArea数据所在的区域
 	//Compare对比方法  true查找数据一样的    false含有要查找的数据
 	let FindData=new Array(); 
 	let f1=new Object
 	let s=''
 	let looka
 	if(Compare==true){
 		looka=xlWhole
 	}
 	else{
 		looka=xlPart
 	}
 	f1=FindArea.Find(Findwhat, FindArea.Cells(1,1), -4176, looka, xlByRows, xlNext, false, false, true);//xlWhole查找相同的/xlPart查找含有的
    if (f1==null){
    	return null
    }
    else{
    	s=f1.Row + '/' + f1.Column
    	FindData[0]=s
    	for(;;){
    		f1=FindArea.FindNext(f1);	
    		if (s!=f1.Row+'/'+f1.Column){
    			FindData.push(f1.Row+'/'+f1.Column)
    		}else{
    			break
    		}
    	} 
        return FindData		 	
    }			 	
 }
 //
 function testfind(){
 	let fd =new Array
 	let r
 	fd=FindFun('4',ThisWorkbook.Sheets('Sheet1').Range("A:A"),false)
    for (x in fd){
        MsgBox(fd[x])    
    }
 }

4.数据查找函数的实际应用

没想到WPS JS没用其他控件可用,也就面板上那几个。哭死,恨死,怨死。没有表格控件可用。
千年后灵感乍现,sheet不就是一个巨大的表格控件吗。
应该很大的可玩性,好吧那就玩玩。
做一格品名的查找和录入把。
首先新建一格表格,把其中一个表格(sheet)重名成XYX,为什么要名成XYX呢?打个广告而已,
然后新建一个窗体,加入text控件和按键控件,再然后双击按键控件,进入代码编辑器,又然后把
我的代码复制粘贴进去

wps文件下载链接在文章顶部sheet文件

 const find_col=21              //这里修改要查找的一个单列
 const find_writ_star=14        //这里修改查找到的数据从那一列开始写入
 const writ_star=1              //这里修改你要的数据从那列开始写入
 var c=1
 var r=1
 function FindFunOne(Findwhat,FindArea,Compare){
 	//这是一个我自己写的数据查找涵数
 	//Findwhat要查找的数据
 	//FindArea数据所在的区域
 	//Compare对比方法  true查找数据一样的    false含有要查找的数据
 	let FindData=new Array(); 
 	let f1=new Object
 	let sr=0
 	let looka
 	if(Compare==true){
 		looka=xlWhole
 	}
 	else{
 		looka=xlPart
 	}
 	f1=FindArea.Find(Findwhat, FindArea.Cells(1,1), -4176, looka, xlByRows, xlNext, false, false, true);//xlWhole查找相同的/xlPart查找含有的
    if (f1==null){
    	return null
    }
    else{
    	sr=f1.Row
    	FindData[0]=sr
    	for(;;){
    		f1=FindArea.FindNext(f1);	
    		if (sr!=f1.Row){
    			FindData.push(f1.Row)
    		}else{
    			break
    		}
    	} 
        return FindData		 	
    }			 

 }
 function WriteFind(FindWhat){
 	let re =new Object
 	let r=2
 	re=FindFunOne(FindWhat,ThisWorkbook.Sheets('XYX').Columns.Item(find_col),xlPart)
 	if(re==null){
 		return
 	}else{
 	  for(x in re){
 	  	ThisWorkbook.Sheets('XYX').Cells(r,find_writ_star).Value2=ThisWorkbook.Sheets('XYX').Cells(re[x],find_col-1).Value2
 	  	ThisWorkbook.Sheets('XYX').Cells(r,find_writ_star+1).Value2=ThisWorkbook.Sheets('XYX').Cells(re[x],find_col).Value2
 	  	r++
 	  }	
 	}
 	
 }
/**
 * UserForm1_CommandButton1_Click Macro
 */
function UserForm1_CommandButton1_Click()
{
	ThisWorkbook.Sheets('XYX').Range("N:O").ClearContents()
	ThisWorkbook.Sheets('XYX').Range('N1').Value2='ID'	
	ThisWorkbook.Sheets('XYX').Range('O1').Value2='名称'	
	WriteFind(UserForm1.TextEdit1.Text)
	ThisWorkbook.Sheets('XYX').Range('O2').Select()
    r=2
    c=15
}




function UserForm1_CommandButton1_KeyDown(keycode, shift)
{
   switch(keycode)
   {
     case 37:
        if(c==1){return}
        ThisWorkbook.Sheets('XYX').Cells(r,c-1).Select()
        c=c-1
    	break  	
    case 38:
        if(r==1){return}
        ThisWorkbook.Sheets('XYX').Cells(r-1,c).Select()
        r=r-1
        break;

    case 39:
        ThisWorkbook.Sheets('XYX').Cells(r,c+1).Select()
        c=c+1
    	break
    case 40:
        ThisWorkbook.Sheets('XYX').Cells(r+1,c).Select()
        r=r+1
    	break
    case 32:
        ThisWorkbook.Sheets('XYX').Cells(2,1).Value2=ThisWorkbook.Sheets('XYX').Cells(r,14).Value2
        ThisWorkbook.Sheets('XYX').Cells(2,2).Value2=ThisWorkbook.Sheets('XYX').Cells(r,15).Value2
        //我懒了,这里只更新一行数据,不想写自动跳行了
    	break				    
   }
   //ThisWorkbook.Sheets('XYX').Cells(10,1).Value2=keycode
}
function 打开查找窗口(){
	UserForm1.Show(true)
}

XYX

wpsjs是一种用于在网页上调用本地WPS的技术,可以方便用户在浏览器中直接使用WPS的功能。通过wpsjs,用户在网页上点击相关按钮或链接时,可以唤起本地WPS软件,方便进行编辑、保存和分享文档等操作。 实现wpsjs的方法一般是通过在网页中嵌入调用WPS软件的链接或代码。当用户点击该链接或执行相关操作时,就会触发浏览器与本地WPS之间的交互,最终唤起本地WPS软件进行处理。 通过wpsjs,用户可以实现一些常见的操作,比如打开本地的Word文档、Excel电子表格或PowerPoint演示文稿,编辑文本、表格或幻灯片等内容。用户还可以在本地WPS中编辑完成后,进行保存,并将修改后的文档重新传输给网页中的文档对象。 wpsjs的好处在于方便、快捷,使得用户无需离开网页就能够享受到本地WPS软件的强大功能。同时,wpsjs也提高了用户的工作效率,无需频繁切换不同的软件界面,一切操作都可以在网页上完成。 需要注意的是,wpsjs一般需要用户在本地安装WPS软件,并进行相关设置,以确保wpsjs能够正常工作。另外,为了保证用户的信息安全,wpsjs还需要采取一些安全措施,确保用户的操作和文档内容不会被非法获取或篡改。 综上所述,wpsjs的主要作用是唤起本地WPS软件,通过在网页中调用WPS的功能,方便用户在浏览器中完成各种操作。它是一种提高工作效率、简化操作流程的有用技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值