JS宏使用plantuml画流程图

wils

创作者俱乐部成员

先用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="`&#34;&gt;https://www.plantuml.com/plantuml/png/${encode64(deflate(s))}&#34;&gt;`

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,自己只需要检查修改即可

海南省
浏览 679
1
5
分享
5 +1
2
1 +1
全部评论 2
 
加载项好像也能弄,也挺麻烦的,啥时候能像vba插件那样弄个nodejs环境的插件,就不用这样绕来绕去了
· 广东省
回复
 
给大神点赞
· 上海
回复