Hi,How are you doing?

我是职场编码(CodeVoc)。

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

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

知乎视频​www.zhihu.com

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

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

一、项目需求

这个工具的主要目的是为了批量汇总工作簿数据,形成独立工作簿信息卡片。

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

点击“执行”按钮,就可以批量汇总工作簿数据,形成独立工作簿信息卡片。

二、界面设计

【html】

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

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

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

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

生成文件选择按钮:

<input type="file" id="goal_file">
<input type="file" id="source_file">

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

【css】

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

【javascript】

根据ID,选中source_file按钮

var source_line=document.getElementById('source_line')

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

source_line.value=document.getElementById('source_file').files[0].path

根据ID,选中goal_file按钮,

var goal_line=document.getElementById('goal_line')

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

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

execute按钮添加单击事件

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

获取参数1

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

获取参数2

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

调用Ruby脚本

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

三、逻辑梳理

=> 基础语法

引用Ruby标准库

require "win32ole"

创建双参数入口方法

def Excel_tabulate_isolate(pth_source,pth_goal)

接收控制台传双参

Excel_tabulate_isolate(ARGV[0],ARGV[1])

单元格已用区域行数计数、创建二维数组

m=ebk.worksheets(1).usedrange.rows.count-1
arr=Array
arr=ebk.worksheets(1).usedrange.value

设置循环

m.times{}
(1..m).each{|i|
}

=> 对象模型

创建可视化Excel应用

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

打开、关闭Excel工作簿

ebk=@eap.workbooks.open(pth_source)
ebk=@eap.workbooks.open(pth_goal)
ebk.close

操作Worksheets、Workbooks对象(复制、保存)

ebk.worksheets(1).copy(nil,ebk.worksheets(1))
@eap.workbooks(2).saveas(File.dirname(pth_source)+''+ebk.worksheets(i+1).name+'.xls',56)

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

ebk.worksheets(i+1).range("b2").value=arr[i][1]
ebk.worksheets(i+1).range("b3").value=arr[i][2]
ebk.worksheets(i+1).range("b4").value=arr[i][3]
ebk.worksheets(i+1).range("b5").value=arr[i][4]
ebk.worksheets(i+1).range("d2").value=arr[i][5]
ebk.worksheets(i+1).range("d3").value=arr[i][6]
ebk.worksheets(i+1).range("d4").value=arr[i][7]
ebk.worksheets(i+1).range("d5").value=arr[i][8]
ebk.worksheets(i+1).name=arr[i][1]

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

数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片相关推荐

  1. mysql命令行批量添加数据_mysql命令行批量插入100条数据命令

    先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...

  2. excel数据表单_Excel中的工作表数据输入表单

    excel数据表单 With a bit of programming, you can make it easy for users to enter data in an Excel workbo ...

  3. excel数据输入窗体控件_工作表数据输入或Excel用户窗体

    excel数据输入窗体控件 If you're building an Excel workbook, in which users with basic Excel skills will ente ...

  4. python 录入数据不重复_pythonDjango批量导入不重复数据

    #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings ...

  5. 美国人口普查数据预测收入sklearn算法汇总1: 了解数据以及数据预处理

    一. 了解数据集 任务目标:建立分类模型预测一个人的收入能否超过五万美元 人口普查数据集: https://archive.ics.uci.edu/ml/datasets/adult import p ...

  6. 使用Python批量处理工作簿和工作表

    使用Python批量处理工作簿和工作表 批量新建并保存工作簿 批量打开一个文件夹中的打开工作簿 批量重命名一个工作簿的所有工作表 批量重命名多个工作簿 批量重命名多个工作簿中的同名工作表 将一个工作簿 ...

  7. 美国人口普查数据预测收入sklearn算法汇总3之ROC: KNN,LogisticRegression,RandomForest,NaiveBayes,StochasticGradientDece

    接<美国人口普查数据预测收入sklearn算法汇总1: 了解数据以及数据预处理> <美国人口普查数据预测收入sklearn算法汇总2: 特征编码, 特征选择, 降维, 递归特征消除& ...

  8. 4、Power Query-智能汇总工作簿下的指定或所有工作表数据

    数据来源之工作簿--智能提取汇总指定文件夹下的工作簿数据 要求:根据指定目录的文件夹内的所有工作薄进行汇总分析. 工资下每个年份每个部门1-12月的工资在此维护,现在的要求是要看看每个年份,每个月一共 ...

  9. 3、Power Query-智能汇总工作簿下的指定或所有工作表数据

    数据来源之工作表(智能汇总工作簿下的所有工作表数据) 本节要求:统计出数据源工作表里面各个类别,各年的总数量. 比如下图的,是在D盘Power Query文件夹下面的一个数据源文件: 其实会用sql语 ...

最新文章

  1. Design Pattern IDisposable Pattern C
  2. python有多少关键字_Python挖词脚本,挖出几十万关键词不是梦带搜索量
  3. Go sycn.Map知识点
  4. Condition - Java多线程编程
  5. Ampere Altra Max 对比测试数据公布,性能能效双领先
  6. Mybatis-jar-lib
  7. 《数据中台:让数据用起来》读书笔记
  8. 面试、笔试中常用的SQL语句(数据库知识必杀)一共50个!!!
  9. Windows操作系统正版盗版知识简介
  10. Mongo 多语言模糊匹配
  11. 前端学习笔记 - 移动端Web开发
  12. 苹果输入法怎么换行_朋友圈长文字不折叠输入法,复制粘贴避免只显示一行
  13. 怎样花两年时间去面试一个人(转自MIND HACKS)
  14. IDEA提交git代码,配置文件乱码
  15. 找金币问题/只秤一次找出真假金币在哪个箱子
  16. 03 学生免费注册Pycharm专业版
  17. 程序设计阶段性总结报告一
  18. 加油,打工人~杨斯维特珍视您的每一滴汗水!
  19. Bone-Age-Detection-From-X-Ray
  20. 网络安全期末考试题目

热门文章

  1. sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容
  2. SQL基础语句(详解版)
  3. Centos7 使用Docker 部署Nginx+mysql+tomcat+调试联通_03
  4. Vue 实现 Open Graph 分享预览
  5. plink源码_plink: 等位型计数(allele count)
  6. android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...
  7. mysql 进阶方向_mysql数据库入门、进阶和提升(续二)
  8. Python 递归函数 - Python零基础入门教程
  9. 2021中卫一中高考成绩查询,2021年宁夏高中排名及分数线 高考本科升学率排行榜...
  10. html视频标签略缩图,JS可以截取video的标签视频缩略图吗?