ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: xx6000

[求助] 关于在JSA中用Get读取二进制文件不起作用的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-21 11:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wanghan519 发表于 2024-2-20 12:52
“图片的二进制字符串”是怎样的格式?

外部的二进制文件,我是用shell命令执行base64.exe a.jpg > a. ...

加载项中能用js-base64将本地图片转为base64码吗?

TA的精华主题

TA的得分主题

发表于 2024-2-21 11:52 来自手机 | 显示全部楼层
xd3210 发表于 2024-2-21 11:43
加载项中能用js-base64将本地图片转为base64码吗?

这个js库只是在js宏环境里暂时凑合用的,以后可能会有btoa之类的方法
如果是说npm安装的那个wpsjs加载项,大概可以用后端语言比如Python转,前端js只是发请求获取结果
如果是Exceldna那种加载项,c#很容易读取文件转

TA的精华主题

TA的得分主题

发表于 2024-2-21 13:04 | 显示全部楼层
wanghan519 发表于 2024-2-20 12:52
“图片的二进制字符串”是怎样的格式?

外部的二进制文件,我是用shell命令执行base64.exe a.jpg > a. ...

我 用 lineinput 读取了图片的文本内容(binaryString 图片的二进制字符串
然后 用 js-base64 encode获取了base64, 可结果 不对 ,我猜应该是 binaryString to byte 有问题
lineinput  有什么限制??

TA的精华主题

TA的得分主题

发表于 2024-2-21 14:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
perfect131 发表于 2024-2-21 13:04
我 用 lineinput 读取了图片的文本内容(binaryString 图片的二进制字符串)
然后 用 js-base64 encode ...

好像lineinput每行只能读取256还是512字节,很短,所以我用外部的base64转的时候自动换行,每行都很短,读进去就正常

TA的精华主题

TA的得分主题

发表于 2024-2-21 14:50 | 显示全部楼层
wanghan519 发表于 2024-2-21 14:40
好像lineinput每行只能读取256还是512字节,很短,所以我用外部的base64转的时候自动换行,每行都很短, ...

这样啊,新姿势,学到了
我还发现 lineinput 读取ansi文件跟 uft-8文件的字节会不同 哎

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-22 10:55 | 显示全部楼层
这种方法是在Windows下才能适用,现在都转成linux下的UOS系统,因为UOS系统自带python3,根据wanghan519的思路,我试着在此系统下用shell命令调用Python对图片进行base64格式转换,也可以based4格式转成图片。基本原理如下:
1.建立UOS下的bash批处理文件demo.bash,并将其放在/opt/apps/目录下,选中“属性->权限管理”,将所有者权限设置为“只读”,并选中“允许以程序执行”,bash文件内容如下:
#! /bin/bash
python3 "/路径/base64encode.py"
2.在wps jsa编辑界面建立一个test function,内容如下:
function test()
{
var path="/opt/apps/demo.bash"
Shell(path,jsNormalNoFocus)
}
3.建立python程序base64encode.py,其内容如下
#引入base64编码解码库
import base64
#使用base64库编码解码指定路径下的图片文件,b64encode编码,b64decode解码
encoded=base64.b64encode(open('/路径/xx.jpg','rb').read())
#将base64编码写入指定路径下的文本文件
open('/路径/xx.txt','wb').write(encoded)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-25 17:25 | 显示全部楼层
xx6000 发表于 2024-2-22 10:55
这种方法是在Windows下才能适用,现在都转成linux下的UOS系统,因为UOS系统自带python3,根据wanghan519的思 ...

shell 不能直接执行py啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 20:46 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Again123456 发表于 2024-2-25 17:25
shell 不能直接执行py啊

Shell执行的是linux下的批处理文件bash文件,通过bash批处理文件调用python程序,从而求得结果的。上述程序我已在UOS系统下运行成功了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 19:30 , Processed in 0.045231 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表