最近从vba转到js宏,以前写vba可以引用BarcodeX控件生成条形码,但我不知道怎么在wps js环境引用第三方控件,所以只能用Shapes.AddPicture方法插入条形码图片,这里利用bwip-js的在线api接口生成条形码。

bwip-js 作者的GitHub地址

一、bwip-js条形码在线 API :
http://bwipjs-api.metafloor.com/
https://bwipjs-api.metafloor.com/

然后指定两个必须参数:bcid参数指定条形码类型、text参数指定条形码的值,通过拼接参数生成条形码,例如生成code128、20230208的条形码:

https://bwipjs-api.metafloor.com/?bcid=code128&text=20230208&includetext=true&textsize=12
二、wps js利用Shapes.AddPicture方法插入条形码图片

AddPicture(链接, 是否链接文件, 是否与文档保存, 左边距离, 顶部距离, 图片宽度, 图片高度),例如在工作表左边距离20、顶部距离20,插入一个宽度120、高度60的条形码图片

let sht = ThisWorkbook.ActiveSheet
let link = 'https://bwipjs-api.metafloor.com/?bcid=code128&text=20230208&includetext=true&textsize=12'
let pic = sht.Shapes.AddPicture(link, true, true, 20, 20, 120, 60)
三、案例:批量code128条形码小标签并导出为pdf

Sheet1工作表数据

Sheet2工作表页面布局设置

代码

/*** CommandButton1_Click Macro*/
function CommandButton1_Click() {let wb = ThisWorkbook, sht1 = wb.Sheets(1), sht2 = wb.Sheets(2), data = sht1.Range('A2').CurrentRegion.Value2, today = dateFormat('yyyy-mm-dd', new Date)if (data.length <= 1 && data[0].length != 6) return alert('请检查数据是否正确')//删除原条形码图片for (let i of sht2.Shapes) {i.Delete()}sht2.Range('A1:H20').Value2 = ''sht2.Range('A1:H20').Copy(sht2.Range('I1'))sht2.Columns('A:H').Delete()let rng = sht2.Range('A1:H20')for (let i = 1; i < data.length; i++) {let j = 20 * i + 1rng.Copy(sht2.Range('A' + j))sht2.Range('B' + (j + 5)).Value2 = data[i][0]sht2.Range('A' + (j + 9)).Value2 = today + ', ' + data[i][4] + ', ' + data[i][5]sht2.Range('A' + (j + 14)).Value2 = data[i][1] + ', ' + data[i][2] + ', ' + data[i][3]}for (let i = 1; i < data.length; i++) {let link = `https://bwipjs-api.metafloor.com/?bcid=code128&text=${data[i][0]}&textsize=12&height=9`let pic = sht2.Shapes.AddPicture(link, true, true, 65, (270 * i + 15), 300, 50)}sht2.Rows('1:20').Delete()let fileName = ThisWorkbook.Path + `\\Lable${dateFormat('yyyymmddHHMMSS', new Date)}.pdf`sht1.Visible = falseThisWorkbook.SaveAs(fileName, 103)sht1.Visible = truesht1.Select()alert('完成')}//日期格式化
function dateFormat(fmt, date) {let retconst opt = {'y+': date.getFullYear().toString(),'m+': (date.getMonth() + 1).toString(),'d+': date.getDate().toString(),'H+': date.getHours().toString(),'M+': date.getMinutes().toString(),'S+': date.getSeconds().toString()}for (let k in opt) {ret = new RegExp('(' + k + ')').exec(fmt)if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')))}}return fmt
}

wps js生成条形码,批量生成code128条形码小标签并导出为pdf文件相关推荐

  1. Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件

    Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件 目录 Python使用matplotlib

  2. PDFkit用python批量把markdown格式文件导出成pdf文件代码

    可以使用 Python 的 pdfkit 库来将 markdown 格式文件批量导出为 pdf 文件. 首先,你需要安装 pdfkit 库: pipinstall pdfkit 然后,你可以使用以下代 ...

  3. python3 生成条形码_python3转换code128条形码的方法

    这年头如果用 python3 做条形码的,肯定(推荐)用 pystrich . 这货官方文档貌似都没写到支持 code128 ,但是居然有这个类( code128encoder).... 一些喷墨打印 ...

  4. 条码生成器之批量生成EAN-8商品条码

    EAN-8码和EAN-13码都是商品条码,不同的是EAN-13码是商品条码的标准码,EAN-8码是商品条码的缩短码,当产品包装小于120平方公分,无法使用标准码时,就可以申请使用缩短码. EAN-8码 ...

  5. python条形码_python3转换code128条形码

    干货不敢私藏,赶紧分享给大家. 这年头如果用python3做条形码的,肯定(推荐)用pystrich. 这货官方文档貌似都没写到支持Code128,但是居然有这个类(Code128Encoder).. ...

  6. PHP版田字格带笔顺临摹描红练习字帖在线生成小工具,可直接打印三色的田字格米字格回宫格空格灰格字帖,生成速度快可直接打印或导出成PDF文件等下载地址在最后

    上面是首页的截图,下面是生成字帖的截图和程序源码 这是个在线生成字帖的PHP小程序,用来给小朋友或大朋友们练字用的,从安装到最后调试我忙了整整一天,不过打印效果非常棒,最初拿到的源码用不了报错,后来改 ...

  7. 生成二维码并将二维码附到pdf文件上,扫描二维码完成跳转

    依托e-iceblue工具完成 官网:https://www.e-iceblue.cn/tutorials.html 本文参考:https://www.e-iceblue.cn/pdf_java_ba ...

  8. 【Python自动化办公】批量将Excel表格数据导出为PDF文件

    前言 嗨喽~大家好呀,这里是魔王呐 ! Excel 格式在我们工作中经常需要用到的 不管是做数据统计还是做信息登记,Excel 都能发挥很强大的作用 也是目前最流行的个人计算机数据处理软件. Exce ...

  9. Python自动化办公:将Excel表格内容批量导出为PDF文件

    Python自动处理Excel表格数据 序言 代码实现 序言 上一篇咱们实现了多个表格数据合并到一个表格,本次咱们来学习如何将表格数据分开导出为PDF文件. 部分数据 然后需要安装一下这个软件 wkh ...

最新文章

  1. C++ 使用 curl 进行 http 请求(GET、POST、Download)的封装
  2. 在web项目中发布jaxws
  3. Python中Collections模块的Counter容器类使用教程
  4. LeetCode 118. Pascal’s Triangle
  5. iphone xcode for lion 下载地址
  6. 对于初步搭建好的SSH框架进行简化(注解的使用)
  7. 惠普服务器硬件检测软件吗,惠普硬件检测工具DST HP PC Hardware Diagnostics UEFI 6.8.0.0 Rev.A 使用方法...
  8. android 波浪进度条方形,CSS3实现波浪进度条效果方法总结
  9. vmware设置固定ip
  10. Elk-Metricbeat配置Tomcat的日志分析 (Metricbeat-part3)
  11. 向量ab怎么用计算机打出来,向量怎么用wps打出来
  12. 推荐多款好看的报表图表配色方案(适用于PPT,大屏可视化分析)
  13. 线性代数《Linear Algebra and Its Application》学习总结
  14. 中国互联网公司应该从雅虎的衰落中学到什么?
  15. php 微信公众号客服,微信公众平台开发 多客服
  16. 微信小程序和ESP32对接,实现手机远程控制灯的亮灭
  17. Bonferroni校正法
  18. 如何在IDEA上创建一个Maven项目2022版
  19. deepin 安装显卡后,可支持双屏展示
  20. springboot租房管理系统源码分享

热门文章

  1. HTML+CSS网页制作—科技建站
  2. 1.1 软件架构含义
  3. JFrame与Frame的区别
  4. linux重装显卡驱动后黑屏,安装好显卡驱动后,重启就进入黑屏,怎么处理?
  5. 数字、时间等单位换算工具类收集
  6. 景点api支持查询携程旅游门票景点详情
  7. 基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Medi
  8. element ui el-autocomplete 组件 value-key 属性
  9. 2022-03-16 k8s的operator的Reconcile执行追踪
  10. 2022海南最新通信安全员模拟考试试题及答案