ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] vba js二维数组及json写入单元格,htmltable Callbyname

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-4 19:54 | 显示全部楼层 |阅读模式
本帖最后由 perfect131 于 2022-12-5 10:50 编辑

                 htmlfile json 解析 一般 Callbyname ,eval 提取装入二维数组,而 wps js不需要这样,直接可以将二维数组写入单元格。

另一种方法:标准 HTMLtable 法 (没想到比 callbyname 慢HTMLtable写入单元格源格式不会被保留
  1. Sub js二维数组写入()
  2.     Set oDom = CreateObject("htmlfile")
  3.     Set oW = oDom.parentWindow
  4.     ''处理 js 二维,转 table 格式
  5. ''''''    oW.execScript "var ar = [['一月,1', 1,3],['二月', 2],['三月', 3]];var ss='<table><tbody>';for (let i=0;i<ar.length;i++){ss=ss + '<tr>';for (let j=0;j<ar[i].length;j++){if(isNaN(ar[i][j])) { ar[i][j] ='"" ' + ar[i][j]+ '""'}ss = ss + '<td>' + ar[i][j] + '</td>'}ss=ss + '</tr>';};ss=ss + '</tbody></table>'"
  6.    
  7.     oW.execScript "var ar = [['一月,1', 1,3],['二月', 2],['三月', 3]];" & _
  8.                   "var ss='<table><tbody>';for (let i=0;i<ar.length;i++)" & _
  9.                   "{ss=ss + '<tr>';for (let j=0;j<ar[i].length;j++)" & _
  10.                   "{ss = ss + '<td>' + ar[i][j] + '</td>'}ss=ss + '</tr>';};ss=ss + '</tbody></table>'"
  11.    
  12.     oW.clipboardData.setData "text", oW.ss  '''table 复制
  13.     ThisWorkbook.Sheets(1).Range("A2").Select  '''粘贴到 A2 单元格
  14.     ThisWorkbook.Sheets(1).Paste
  15.     Set oDom = Nothing
  16.     Set oW = Nothing
  17. End Sub
复制代码




jsontotable.png
json.png
js 二维数组.png
callbyname.png

vba js二维数组及json写入单元格.zip

90.67 KB, 下载次数: 22

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-12-7 23:51 | 显示全部楼层
  1.     oW.execScript "var ar = [['一月', 1], ['二月', 2], ['三月', 3]];for (let i = 0; i < ar.length; i++) {ar[i] = ar[i].join('\t');};var ss=ar.join('\r\n');"
  2.     oW.execScript "var ar = [['一月', 1], ['二月', 2], ['三月', 3]];var ss = ar.map(function(x) { return x.join('\t');}).join('\r\n')" 'IE10
复制代码

也可以这样

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 16:14 , Processed in 0.035029 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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