JS宏使用plantuml画流程图
创作者俱乐部成员
先用ai生成个plantuml脚本,保存到utf8的txt文件里
然后根据官方这篇文档https://plantuml.com/zh/code-javascript-synchronous
下载js-deflate,导入JS宏编辑器
并复制encode64等函数,同样粘贴到JS宏编辑器
最后,根据脚本生成流程图
🔔 | function tt() { let s = FileSystem.readAsBinaryString(`${ThisWorkbook.Path}\\a.txt`) s = `<table><img src="`">https://www.plantuml.com/plantuml/png/${encode64(deflate(s))}">` console.log(s) const tb = ActiveSheet.Shapes.AddTextbox(1, 1, 1, 100, 100) tb.TextFrame2.TextRange.Text = s tb.TextFrame2.TextRange.Copy() tb.Delete() ActiveSheet.Paste() } |
原理就是将utf8的脚本,经过deflate和类似base64的转换后,直接生成plantuml在线服务接受的png图片地址,之后通过剪贴板插入表格
如果没有将脚本保存为txt,而是JS宏里的字符串,可以先用FileSystem.WriteFile保存成utf8的txt同上操作,也可以从js-base64库提取字符串转utf8二进制字符串的方法
使用脚本生成流程图的好处很多,比如可以用不支持图片的ai生成和修改,免去连线的麻烦,便于之后的微调,便于批量生成等等,值得尝试
不得不感慨,ai似乎非常擅长使用这些规范化的脚本语言,原来还得学一点plantuml语法,现在直接上ai,自己只需要检查修改即可