首发于 Electron\Ruby多元开发
E017 如何批量整理行政区划代码

E017 如何批量整理行政区划代码

Hi,How are you doing?

我是职场编码(CodeVoc)。

在E000中,我们介绍了Node.js、Ruby、Electron等工具下载安装。

这期,给你演示一下由Electron联合Ruby制作的小工具。

借助Electron官方Demo,我们很容易制作一个工具展示平台。

点击“View Demo”会弹出我们的工具界面。

一、项目需求

这个工具的主要目的是为了批量整理行政区划代码。

它除了可以选择源文件,还可以选择目标文件,

甚至可以监听控制台输出语句,把输出反馈显示在前端文本框内。

点击“写入”按钮,就可以把存储在Excel表格里的源数据,批量整理形成标准的行政区划代码一维数据。

二、界面设计

【html】

生成表单容器:<form></form>

生成布局标签:<div></div>

生成行内标签:<span></span>

生成单行输入框:<input id="input_line">

生成文件选择按钮:

<input type="file" id="input_file"> 

生成文本框:<textarea id="text"></textarea>

生成普通按钮:<input type="button" id="execute">

【css】

关注四点前白后绿气泡某杺平台,搜索“职场编码”查看源码。

【javascript】

根据ID,选中input_file按钮

var input_line=document.getElementById('input_line')

给input_file按钮,添加"change"事件

input_line.value=document.getElementById('input_file').files[0].path 

execute按钮添加单击事件

execute.addEventListener("click",function(){获取参数1,调用})

获取参数1

var input_line=document.getElementById('input_line').value

调用Ruby脚本

const { spawn } = require('child_process')
const ls = spawn('ruby', ['Ruby脚本完整路径',参数1])

监听脚本命令行输出,将接收值即时传入文本框,自动显示最新行

var text=document.getElementById('text')
ls.stdout.on('data', data=>{text.value+=data;
    var d = document.getElementById("text").scrollHeight;
    document.getElementById("text").scrollTop = d})

三、逻辑梳理

=> 基础语法

引用Ruby标准库

require "win32ole"

创建单参数入口方法

def Excel_disposal_data(pth_source)

接收控制台传单参

Excel_disposal_data(ARGV)

单元格有效行计数、创建二维数组

n=@eap.worksheetfunction.counta(ebk.worksheets(1).columns("a:a"))
n=n/5 #有效行
arr=Array.new(n){[nil]}

设置循环

(0...n).each{|i|
    (0...5).each{|j|
    }
}

=> 对象模型

创建可视化Excel应用

@eap=WIN32OLE::new("excel.application");@eap.visible=true

打开Excel工作簿

ebk=@eap.workbooks.open(pth_source)

操作columns对象(清空、替换、复制、黏贴)

est.columns("C:E").clearcontents
est.columns("A:B").replace( "cName" ,"")
est.columns("A:B").replace( "code" ,"")
est.columns("A:B").replace( ":" ,"")
est.columns("A:B").replace("\"" ,"")
est.columns("G").copy
est.columns("C").PasteSpecial(-4163) #粘贴值

执行数组写入Excel单元格区域双向操作

arr[i][j] = ebk.worksheets(1).cells(m,1).value
est.range("a1").resize(n,5).value=arr

关注四点前白后绿气泡某杺平台,搜索“职场编码”查看源码。

深圳SEO优化公司丽江网站优化排名南联关键词按天扣费报价坑梓seo多少钱上饶网站建设多少钱淮南推广网站价格惠州关键词排名四平企业网站设计报价白城建站哪家好鹰潭百度网站优化推荐河源网站定制推荐昆明设计公司网站报价大庆推广网站宜宾网站优化排名公司重庆网站改版济源网站设计模板哪家好迪庆建设网站报价大运优化公司威海百姓网标王推广推荐坂田建网站报价咸宁模板网站建设报价巴中网站推广系统公司邢台网站定制宁德网站制作设计邢台百度网站优化价格阜新网站设计模板公司哈密百搜标王公司广东如何制作网站清远营销网站多少钱阿坝网站优化排名哪家好泰州关键词按天收费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化