关于现有js和py能力边界的一些思考,以及我期望的"梦中情表"的编程工具是怎样的

本文仅个人有限能力思考内的观点,若有理解不当欢迎共同探讨指证。

1 jsa擅长操作却不擅长做数据分析

现有的云文档AirScript或本地的JSA,都是基于js这个语言开发的,并且侧重的是对"表格操作"的能力,比如能获得、设置单元格的格式、链接等,但却不擅长做"数据分析"。

比如我想筛选姓名为"code4101"的条目,并获得字典结构的数据,是非常麻烦的,基本要从底层的if、for逻辑一行行手撸。

jsa的AutoFilter功能是对表格本身的筛选操作,而不是数据逻辑的操作。

数据分析相关工作很多时候是要在程序内存中进行各种数值操作,而不是要操作表格。

对于筛选数据,哪怕我对这个筛选自己封装了一个工具函数,改天也又会有其他数据操作逻辑。

数据分析核心基础功能需求,其实就是数据库sql的"增删改查",但我们自己在js中封装这样一套类sql工具是不太现实的。

如果官方jsa能支持导入第三方库,能一定程度缓解这个问题,js有一些数据操作能力的工具库。

但js这块的功能生态本来就不如py,专业的事似乎还是得交给专业的工具做。

2 python擅长分析却没有操作原始表格的能力

谈到数据分析能力,python说那我可就不困了。

比如python的pandas就是一个非常强大的工具,本身就有大量的功能接口,操作流畅体验不输sql语言。

但python操作表格的能力又不如wps官方出的jsa。

只能通过xl等函数获取数据后进行处理,或者写回数据,没法设置单元格格式、插入超链接等操作。

python源生比较强的能操作工作表的是openpyxl库,但这个首先是读取线下表格文件,其次功能也比jsa其实弱很多。

3 总结

  1. js擅长做"操作"但不擅长"分析",py擅长"分析"但不擅长"操作"。官方是否有考虑过在py做一套仿vba、jsa的操作功能?如果能把功能在py中大一统,我觉得这就是我的"梦中情表"。但我不知道js做表格是否有某些天然优势,py有某些天然劣势导致工作量过大所以近年不会考虑这个开发方向?

  1. 如果1做不到,那是否可以在现有基础上,对js和py都做些增强?

  1. js支持导入第三方库,尤其是一些数据分析的库?以及支持导入自定义工具模块的功能,参考:https://bbs.wps.cn/topic/44494

  1. 现有的py似乎没有js的"脚本令牌"(https://airsheet.wps.cn/docs/apitoken/api.html)功能?希望py也能扩展支持更多api的调用模式?

  1. js和py是否能联动,互相调用彼此?

  1. 当"操作"和"分析"在工程上能更好的融合开发,而不是要完全分开在不同的工具模块里开发,我相信相关的AI工具也会有更大的潜力空间,或许有一天AI就能全自动地帮我们用【操作】采集清洗数据、设置格式,还能用【分析】帮我们自动统计生成报表。

PS:话说最近官方人员出没得少了,难道冲年底业绩去了 doge

北京
浏览 1413
1
4
分享
4 +1
8
1 +1
全部评论 8
 
艾泽林
艾泽林

@金山办公

我们也在头脑风暴一个更接近nodejs和python容器的开发平台。需要大家共创,做一些典型的应用场景来验证。
· 广东省
回复
 
wils
wils

创作者俱乐部成员

1. jsa可以调用库,ramda直接导入就能用,函数式链式调用,filter之类一句搞定; py可以通过com对象操作wps(类似xlwings),只是需要自己实现; 如果是py自定义公式,xloil装上就能用,wps早就可以用DataFrame写的公式 2. airscript这种在线表格,还是js好点,不过也有rustpython这种运行在浏览器里的py环境了,说不定哪天就能用了 3. 在线表格导入js库,py脚本令牌,举双手支持 4. 相互调用肯定可以的,比如jsa里当成前端来写,上传下载json就好,py里当成后端来写,用dataframe处理完数据返回结果,哈哈。。。 5. 其实现在期待的是wps把基础工作做好,比如jsa的编辑环境搞好一点 还有多维表格插件,ServerAPI赶快上线之类的。。。 我一个打酱油的都觉得千头万绪,慢慢来吧,其实可玩性已经够花了,哈哈
· 广东省
回复
wils
wils

创作者俱乐部成员

而且,还有大佬用exceldna做c#插件和各种窗口 在线表格现在就可以在油猴脚本里载入库 可以令牌写js只存取数据,外部用任何语言的后端操作 还有ahk这种集合了vba和jsa优点的集大成者 还有现成的sqlite.xll之类的插件可以直接在wps写sql 其实可玩的太花了,现在只求把基础功能弄稳定一点,其他都是浮云。。。
· 海南省
回复