Shell脚本(12)——批量插入code128条码

wils
wils

创作者俱乐部成员

问题来自论坛:如何根据A列内容,在B列生成条码。

https://bbs.wps.cn/topic/34267

环境是前面介绍过的wsl,因为这次需要安装zint这个命令行生成条码的工具

首先,还是用busybox httpd开启web接口

🔔

#!/bin/sh

echo -e 'Content-type: text/plain; charset=utf-8\n'

sh

很简单,就是执行传递过来的命令

然后,从JS通过fetch发送命令,之后插入图片

👋

function tt()

{

let r = Range("A1:A4").Value2.flat()

fetch("http://localhost:8080/cgi-bin/sh.sh", {

method: "POST",

body: r.map((x,y)=>`zint -o "../B${y+1}.png" -d "${x}" --filetype=PNG`).join("\n")

}).then(r=>{

for (let i of Range("B1:B4")) {

i.GetRangeEx().InsertCellPicture(`${ThisWorkbook.Path}\\B${i.Row}.png`)

}

})

}

  • fetch发送的是构造好的命令,类似zint -o 输出文件 -d 输入内容 --filetype=PNG

  • 之后,就是用GetRangeEx().InsertCellPicture,把生成的图片插入对应的单元格

今天的关键是GetRangeEx().InsertCellPicture方法,是从论坛里大佬的回帖学来的,没有找到相关文档,但能用就好😁

说句实话,安装各种环境确实挺烦的,但是,也可以看到,有了环境,需要自己写的代码其实很少,只需要把功能连起来,就能用了。。。

广东省
浏览 309
收藏
5
分享
5 +1
4
+1
全部评论 4
 
方盛
方盛

创作者俱乐部成员

什么行业要经常用到shell脚本,我这辈子能用上吗?
· 湖北省
回复
wils
wils

创作者俱乐部成员

原来在windows里,只要遇到,需要和表格外部的数据进行交互、批量自动操作的情况,就需要通过各种com对象来写,比如fso、ado这些。。。 但是,现在推广国产linux,没有com这一套东西,过去能自动化的很多操作,就需要改成shell方式 相比起来,shell命令更丰富、灵活,更新更快,但前面这些年用linux的人太少,大家都不太熟悉 所以基本是国企、推广国产系统的单位,需要shell这条路
· 海南省
回复