

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]
關注四點前白后綠氣泡某杺平臺,搜索“職場編碼”查看源碼。