前言
我们业务员需要把系统的号码导出(.csv)成通讯录的格式(.vcf),然后下载到手机里面,用于添加客户微信等
表格转换成通讯录的软件有很多,我在用的是论坛发的工具
最开始的工作量是没多少,只需要把表格另存为(excel 97- 2003)格式,在拖进工具里面保存就好了
可是随着人多了,就需要先把名单按照人头名字分别存储为(excel 97- 2003)格式,在一个个拖进工具里面,改名-另存为-在拖表格-另存为-改名.......
不出意外的情况就出意外了,重复的工作一旦做多了,我是一定会出错的,于是就做了个小工具,可以一键批量转换。
脚本使用按键精灵编写,目前只会用这个(0.0)
使用说明
1.数据表格和软件放在同一个文件夹
2.表格格式如下,第一列是姓名,第二列是业务员名字,第三列是手机号
3.输入业务员名称,点击写入配置文件,文件夹下面就会多一个名字叫做“配置文件”的东西,比如我们有十个业务员,都需要把各自的客户导出到通讯录,那就把十个业务员名字分别写入配置文件
4.选择表格,点击初始化(点一次没反应就点2次)之后会自动打开表格,出现闪退的情况就手动打开表格,然后点击开始,通讯录文件会生成在 C:\通讯录导出 里面
C盘下面生成的2个目录在使用完就可以删除
5.成品和源码https://88886666.lanzouw.com/b00xe59uh
密码:52pj
6.分享给有需要的人,多数应该是不需要吧(0.0)
代码如下
Sub 初始化
PutAttachment "c:\test_game","."
Set ws = CreateObject("Wscript.Shell")
ws.run "regsvr32 ""c:\test_game\LazyOffice.dll"" /s"
path =Form1.BrowseBox1.Path
Set LazyExcel= CreateObject("Lazy.LxjExcel")
Index = LazyExcel.ExcelOpen(path, 1)
脚本日志 "初始化"
End Sub
Sub 脚本日志(参数)
日志累计数 = 日志累计数 + 1
If 日志累计数 >= 50 Then
Form1.日志.List = ""
日志累计数 = 0
End If
Form1.日志.List="["&time()&"]: "&参数&"|"&Form1.日志.List
End Sub
Event Form1.Button2.Click
Call 初始化
End Event
Sub OnScriptExit()
脚本日志 "全部处理完成"
End Sub
Event Form1.Button1.Click
newname = Form1.InputBox1.Text
exepath = Plugin.SysEx.GetDir(0)
If len(newname) = 0 Then
MessageBox "内容为空"
Else
Call Plugin.lxj_Plug.lxj_WriteTXT(exepath & "/配置文件.ini", newname & chr(10), "GB2312")
MessageBox "增加成功"
End If
Form1.InputBox1.Text = ""
End Event
Event Form1.Button3.Click
exepath = Plugin.SysEx.GetDir(0)
Call Plugin.File.DeleteFile(exepath & "/配置文件.ini")
MessageBox "配置文件已清空"
End Event
Event Form1.Button4.Click
Call 初始化
Dim LazyExcel,path,Index,Str
path =Form1.BrowseBox1.Path
Set LazyExcel= CreateObject("Lazy.LxjExcel")
Index = LazyExcel.ExcelOpen(path, 1)
SET Rang = LazyExcel.ObjRange(1, "A:C", index)
Rang.RemoveDuplicates 3 //以第3列去重
exepath = Plugin.SysEx.GetDir(0)'获取当前路径
脚本日志 "获得路径:" & exepath
text = Plugin.File.ReadFileEx(exepath &"/配置文件.ini")
Dim myarray
myarray = split(text, "|")'读取文本内容放进数组
脚本日志 "当前有:"&UBound(myarray)&"个账号待处理"
If UBound(myarray) > 0 Then '最大下标
i = 0
For UBound(myarray)
SayString cstr(myarray(i)) '数字转换String
Delay 1000
Delay 100
名称 = "="&cstr(myarray(i))&""
Arr = LazyExcel.ExcelFilter(1, 1, 2, 名称, Index)
//筛选
Call LazyExcel.SheetAdd(1,Index)
//添加标签页
Call LazyExcel.ExcelCopyTo(2, "A:C,"&Index, 1, "A:C,"&Index, 0)
//数据复制过来
RCount = LazyExcel.SheetRowsCount(1, Index) '第一页表格数据有多少
For NN = 2 To RCount '我们系统导出的是csv文件,需要处理一下
phone = LazyExcel.ExcelRead(1, NN, 1, Index)
Call LazyExcel.ExcelWrite(1, NN, 1, phone, Index)
Next
Maxnum = LazyExcel.SheetRowsCount(1, Index)
For qqq = 2 To Maxnum
thename = LazyExcel.ExcelRead(1, qqq, 1, Index)
thephone = LazyExcel.ExcelRead(1, qqq, 3, Index)
lineone = "BEGIN:VCARD" & chr(10) & "VERSION:2.1" & chr(10) & "FN:" & thename & chr(10) & "N:;" & thename & ";;;" & chr(10) & "TEL;CELL:" & thephone & chr(10) & "END:VCARD" & chr(10)
Call Plugin.lxj_Plug.lxj_WriteTXT("C:\通讯录导出\" & myarray(i) & ".vcf", lineone , "UTF-8")
Next
path = LazyExcel.ExcelPath(Index)
Call LazyExcel.SheetDel(1, Index)
Call LazyExcel.ExcelFilterOver(1, Index)
脚本日志 myarray(i) & "处理完成"
i = i + 1
Next
Else
MessageBox "没有配置文件"
End If
Call LazyExcel.ExcelClose(Index)
End Event