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

30ad19d86187520b6c3067de1491e796.png

6613681dcfd31e1dfc1589173cfd7ad4.png

Hi,How are you doing?

我是职场编码(CodeVoc)。

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

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

知乎视频​www.zhihu.com

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

5c853a1c27fbf3c7f7708256309b2e03.png

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

486387654f1d1ba9deba4cf6ef35e4cd.png

一、项目需求

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

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

3dbece00974abc5037584bb62bf9b798.png

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

17059095c65f35456a8a35e46be8cead.png

二、界面设计

【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]

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis哨兵模式没有切换主机_Redis哨兵(Sentinel)模式

Redis哨兵(Sentinel)模式在这里插入图片描述一、主从复制高可用当我们使用主从复制出现的问题手动故障转移写能力和存储能力受限主从复制 -master 宕机故障处理主从切换技术的方法是&#xff1a;当主服务器宕机后&#xff0c;需要手动把一台从服务器切换为主服务器&#xff0c;…

mysql rpm 安装6_linux6.5 RPM方式安装 mysql5.6

步骤一、检查下linux是不是已经安装了MySQL# rpm -qa|grep mysqlmysql-libs-5.1.71-1.el6.x86_64# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 //卸载# find / -name mysql//有mysql文件夹的话&#xff0c;把mysql的文件夹删掉步骤二、下载需要的安装包&#xff0c;下载地…

阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记

1初始化配置1.1设置白名单创建RDS实例后&#xff0c;需要设置RDS实例的白名单&#xff0c;以允许外部设备访问该RDS实例。默认的白名单只包含默认IP地址127.0.0.1&#xff0c;表示任何设备均无法访问该RDS实例。设置白名单包括两种操作&#xff1a;设置IP白名单&#xff1a;添加…

mysql数据库下载压缩包_mysql 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解...

大家好&#xff0c;今天我在学习 MySQL 8.0.22安装及配置遇到了一些问题&#xff0c;特地将我整个安装过程分享出来希望可以帮助不会安装的小伙伴&#x1f61c;。参考链接第一步 MySQL的下载进入MySQL官网下载&#xff0c;按下图所示步骤操作&#xff0c;耐心等待下载完成就可以…

mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解

大纲一、前言二、Mysql 基础知识三、Mysql 复制(Replication)四、Mysql 复制(Replication)类型五、Mysql 主从复制基本步骤六、Mysql 主从复制(异步)七、Mysql 主从复制(半同步)八、Mysql 复制工具九、Mysql 复制注意事项十、Mysql 复制过滤一、前言从这一篇博客开始我们就来学…

mysql导入xml 工具下载_XML导入Mysql工具下载|XmlToMysql 最新版v2.1 下载_当游网

XmlToMysql是一款十分不错的XML导入Mysql工具&#xff0c;它可以帮助用户们将XML中的数据快速的导入到MySQL数据库中&#xff0c;可以直接跳过解析环节&#xff0c;因此可以有效的提升程序员传输数据的效率&#xff0c;让程序员可以拥有更多的时间去处理其他环节的事宜。所以喜…

mysql忽略表名大小写_Mysql 表名忽略大小写-连接字符集随笔记录

1.参数说明&#xff1a;lower_case_table_names0表名存储为给定的大小和比较是区分大小写的lower_case_table_names 1表名存储在磁盘是小写的&#xff0c;但是比较的时候是不区分大小写lower_case_table_names2表名存储为给定的大小写但是比较的时候是小写的unix,linux下lower_…

ddl是什么意思网络语_DDL(数据定义语言)

DDL&#xff0c;是对数据库内部的对象进行创建&#xff0c;删除&#xff0c;修改等的操作语言。它和DML语言最大的区别是DML只是对表内部数据的操作&#xff0c;而不涉及到表的定义&#xff0c;结构的修改&#xff0c;更不会涉及到其它对象。1.连接数据库:注:1.mysql代表客户端…

测试网络的带宽指令_单机千万级MQTT服务器测试报告

目标&#xff1a;测试创建1000万客户端连接到Coolpy7 MQTT服务器端&#xff0c;服务器操作系统 Linux(任意一款发行版服务器版本)。分别在两台硬件一样的服务器&#xff0c;其中一台用于服务器端运行&#xff0c;另一台用于创建千万客户端连接客户端机器。在硬件一致的情况下请…

查看redis aof内存_Redis持久化问题定位与优化技巧

今天主要分享继Redis持久化方式RDB、AOF之后的一些常用的Redis问题定位于优化方式。这里主要CPU、内存、磁盘在三个维度去分析问题&#xff01;Fork操作当Redis做RDB或AOF重写时&#xff0c;一个必不可少的操作就是执行fork操作创建子进程&#xff0c;对于大多数操作系统来说fo…

windows设置mysql使用率_Windows下配置Mysql

这里说的配置Mysql&#xff0c;是在安装时进行的&#xff0c;请先查看&#xff1a;Windows平台下安装Mysql紧接上文&#xff0c;安装完成后将配置选项打上对勾&#xff0c;按下“Finish”&#xff0c;出现下面的界面&#xff0c;这里有一个很好的功能&#xff0c;mysql配置向导…

mysql 云无忧ps教程_华为云数据库MySQL一键开通读写分离,无忧应对企业业务高峰情景...

业务大促&#xff0c;订单暴增&#xff0c;网站流量暴涨几倍&#xff0c;数据库服务器容量又要扛不住了&#xff0c;眼睁睁看着生意白白溜走&#xff0c;再苦逼也无法解决&#xff0c;“肿”么办&#xff1f;别担心&#xff0c;一键开通读写分离&#xff0c;而且只需一个连接地…

python 基因序列提取_科学网—简单的Python脚本提取对应位置基因序列(fasta文件) - 王彬忠的博文...

最近&#xff0c;用Python脚本提取&#xff0c;在基因号已知&#xff0c;位置已知条件下&#xff0c;相对应位置的基因序列时发现&#xff0c;这样很简单但是很实用的脚本&#xff0c;在网上却比较难找。而且&#xff0c;能被找到的脚本&#xff0c;相对于具有初级编程能力的人…

python是强定义语言吗_python是强类型语言吗

强弱是对类型而言的。强类型&#xff0c;你有一个值之后这个值是什么类型是确定&#xff0c;比如n1&#xff0c;n的类型是确定的(字符串)&#xff0c;因此你不能在Python做n3 mn1运算。而弱类型就不是这样的&#xff0c;值的类型可以在需要的时候再去确定&#xff0c;比如PHP里…

深入java核心_Java核心(五)深入理解BIO、NIO、AIO

导读&#xff1a;本文你将获取到&#xff1a;同/异步 阻/非阻塞的性能区别&#xff1b;BIO、NIO、AIO 的区别&#xff1b;理解和实现 NIO 操作 Socket 时的多路复用&#xff1b;同时掌握 IO 最底层最核心的操作技巧。BIO、NIO、AIO 的区别是什么&#xff1f;同/异步、阻/非阻塞…

java arraylist底层实现原理_ArrayList和LinkedList底层原理

ArrayList和LinkedList都是List的实现类&#xff0c;是在日常开发中经常被使用到的两个集合&#xff0c;我们来结合源码看下两个集合的不同之处。先来看下ArrayList的源码&#xff1a;// 默认的初始化大小private static final int DEFAULT_CAPACITY 10;ArrayList的底层数数组…

java 3_Java 3 (Java的数据类型)

Java的数据类型主要内容&#xff1a;1Java数据类型的分类2.8种基本数据类型3.理解引用类型的特点一、什么是数据类型&#xff1f;计算机语言将数据按性质进行分类&#xff0c;每一类称为一种数据类型&#xff1b;数据类型定义了数据的性质、取值范围、存储方式、对数据所能进行…

java replace stringbuilder_java.lang.StringBuilder.replace()方法实例

全屏java.lang.StringBuilder.replace()方法按照这个顺序&#xff0c;在指定的字符串的子字符串替换字符。子串开始在指定start的 索引&#xff0c;并延伸到该字符 end - 1&#xff0c;或如果序列的末端不存在这样的字符。声明以下是java.lang.StringBuilder.replace()方法的声…

中小学课java_java毕业设计_springboot框架的中小学排课与实现

这是一个基于java的毕业设计项目,毕设课题为springboot框架的中小学排课与实现, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jspspringbootmybatis, 中小学排课与实现采用mysql进行数据存储, 并基于mybatis进行了orm实体关系映射, 该中小学排课与实现…

制作自己的 Docker 容器

软件开发最大的麻烦事之一&#xff0c;就是环境配置。用户必须保证操作系统的设置&#xff0c;各种库和组件的安装&#xff0c;只有它们都正确&#xff0c;软件才能运行。docker从根本上解决问题&#xff0c;软件安装的时候&#xff0c;把原始环境一模一样地复制过来。 以 koa-…