WPS-js宏 写一个批量重命名的工具宏

js宏练手小工具——批量重命名

效果展示:

已把写好的宏加在快捷访问工具栏中(上一篇有教程),这里写了一个集合多个工具的窗体,这里直接选择批量重命名。

(1)点击‘选择文件’按钮选择一个或多个文件’

(2)根据需求选择对应的 重命名规则(这里有7种重命名规则,具体看图二)

(3)在输入框填写需要重命名添加的字符(规则为在中间插入字符还需要选择插入字符的位数)

(4)点击‘重命名’按钮,宏会按照选择的规则执行批量重命名

 代母实现:

(1)根据需求拉取窗体和控件

(2)点击批量重命名按钮时,窗体初始化:

//批量重命名功能进入
function UserForm1_CommandButton6_Click()
{
	UserForm1.Close()
	UserForm4.StartUpPostion = 1
	UserForm4.TextEdit1.Value = ""
	UserForm4.TextEdit2.Value = ""
	UserForm4.Label4.Caption = ""
	UserForm4.SpinButton1.Enabled = false
	UserForm4.ComboBox1.AddItem("首位添加字符")
	UserForm4.ComboBox1.AddItem("末位添加字符")
	UserForm4.ComboBox1.AddItem("X位末添加字符")
	UserForm4.ComboBox1.AddItem("自定义")
	UserForm4.ComboBox1.AddItem("末位插入日期")
	UserForm4.ComboBox1.AddItem("全部大写")
	UserForm4.ComboBox1.AddItem("全部小写")
	UserForm4.Show()
}

 (2)‘选择文件’按钮功能实现:

//重命名--选择需重命名的文件
function UserForm4_CommandButton1_Click()
{
	let fd = Application.FileDialog(msoFileDialogFilePicker) 
        , arr = []
 	//允许文件多选
 	fd.AllowMultiSelect = true
    fd.Filters.Clear() 
    fd.Filters.Add('Excel文件', '*.xls;*.xlsx;*.csv') 
    fd.Title = '请选择EXCEL文件'
 	//判断是否选择文件并反馈
    if (fd.Show() != -1) {
        UserForm4.TextEdit1.Value = ""
        UserForm4.Label4.Caption = "你未选择文件,无法重命名"
    }
 	else{
 		//选择的文件地址转为数组,在文本框显示
		UserForm4.Label4.Caption = ""
    	for (let i = 0; i < fd.SelectedItems.Count; i++) {
    		arr[i] = fd.SelectedItems.Item(i + 1)
    	}
    	UserForm4.TextEdit1.Value = arr.join('\n')
 	}
}

 (3)重命名规则预览实现:

//重命名--规则预览
function UserForm4_ComboBox1_Change()
{
	if(UserForm4.ComboBox1.Value == "X位末添加字符"){
		UserForm4.SpinButton1.Enabled = true
		UserForm4.Label4.Caption = "xxxx --> xxAxx"
	}
	else if(UserForm4.ComboBox1.Value == "首位添加字符"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "xxxx --> Axxxx"
	}
	else if(UserForm4.ComboBox1.Value == "末位添加字符"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "xxxx --> xxxxA"
	}
	else if(UserForm4.ComboBox1.Value == "自定义"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "xxxx --> AAA"
	}
	else if(UserForm4.ComboBox1.Value == "末位插入日期"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "xxxx --> xxxx(20230222)"
	}
	else if(UserForm4.ComboBox1.Value == "请选择重命名规则"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = ""
	}
	else if(UserForm4.ComboBox1.Value == "全部大写"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "AbCd --> ABCD"
	}
	else if(UserForm4.ComboBox1.Value == "全部小写"){
		UserForm4.SpinButton1.Enabled = false
        UserForm4.Label4.Caption = "AbCd --> abcd"
	}
}

(4)‘重命名’按钮功能实现:

//重命名--重命名按钮
function UserForm4_CommandButton2_Click()
{
	if(UserForm4.TextEdit1.Value == ""){
    	UserForm4.Label4.Caption = "你未选择文件,无法重命名"
	}
	else{
		if(UserForm4.ComboBox1.Value == "请选择重命名规则"){
    		UserForm4.Label4.Caption = "你未选择规则,无法重命名"
		}
		else{
			UserForm4.Label4.Caption = ""
			let addname = UserForm4.TextEdit2.Value//文本框输入的文件名
		    ,pth = UserForm4.TextEdit1.Value.split('\n')
		    , data = []
		    
		    for (let i = 0; i < pth.length; i++) {
		        let wb = Workbooks.Open(pth[i])
		        , fname1 = wb.Name                  //原始文件名
		        , num1 = fname1.length              //原始文件名的长度
		        , num2 = UserForm4.SpinButton1.Value//X位末添加字符——X
		        , f                                 //保存的路径+文件名
		        
				let arr = fname1.split("")          //原始文件名字符串转为数组
				arr.splice(num1-5, 5)               //删除数组最后的5个数据(删除的是.xlsx5个字符)
				let fname2 = arr.join('')			//处理好的数组转为字符串
				arr.splice(num2, 0, addname)		//在X位末加入数据
				let fname3 = arr.join('') 			//在X位末加入数据   数组转为字符串
				let fname4 = fname2.toLocaleUpperCase()//字母转为大写
				let fname5 = fname2.toLocaleLowerCase()//字母转为小写
				
		        if(UserForm4.ComboBox1.Value == "首位添加字符"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + addname + fname2 + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "末位添加字符"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + fname2 + addname + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "自定义"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + addname + i + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "末位插入日期"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + fname2 + "(" + dateFormat('yyyymmdd', new Date) + ")" + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "X位末添加字符"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + fname3 + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "全部大写"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + fname4 + '.xlsx'
		        }
		        else if(UserForm4.ComboBox1.Value == "全部小写"){
		        	f = "C:/Users/oristand/Desktop" + '\\' + fname5 + '.xlsx'
		        }
		        //按照自定义规则保存为xlsx文件,地址为桌面
		        wb.SaveAs(f)
		        wb.Close()
		    }
		    UserForm4.Label4.Caption = "重命名结束,文件保存在桌面!"
		}
	}
}

到此结束,有问题一起交流!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
wps-js是一种用于WPS办公软件的自动化处理工具,可以通过编JavaScript脚本来实现对文档的自动化操作。 要返回行号,我们可以通过以下步骤实现: 1. 获取当前活动文档中的所有行数据。 使用WPS JS中的`getActiveWorksheet`函数获取当前活动文档,并使用`getRows`方法获取所有行数据。 2. 获取当前行号。 遍历所有行数据,找到与指定数据匹配的行,并记录当前的行号。 3. 返回行号。 将获取的行号返回给调用者,可以使用`alert`函数弹出提示框显示行号。 下面是一个示例代码: ```javascript function findRowNumber(targetData) { var activeWorksheet = wps.api.core.getActiveWorksheet(); var rows = activeWorksheet.getRows(); var rowNumber = -1; for (var i = 0; i < rows.length; i++) { var rowData = rows[i]; if (rowData.indexOf(targetData) !== -1) { // 判断当前行是否包含目标数据 rowNumber = i + 1; // 行号从1开始计数 break; } } return rowNumber; } var targetData = "目标数据"; var rowNumber = findRowNumber(targetData); alert("目标数据所在行号为:" + rowNumber); ``` 以上代码中,我们定义了一个名为`findRowNumber`的函数,它接收一个参数`targetData`表示要查找的目标数据。通过调用`getActiveWorksheet`函数获取当前活动文档,然后使用`getRows`方法获取所有行数据。再通过遍历行数据的方式找到与目标数据匹配的行,并记录行号。最后,将获取的行号通过弹出的提示框返回给用户。 当我们调用`findRowNumber`函数并传入目标数据后,它会在当前文档中查找该数据所在的行,并通过提示框显示行号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值