找回密码
 立即注册

QQ登录

只需一步,快速开始

olookok 活字格认证
论坛元老   /  发表于:2024-11-1 16:01  /   查看:358  /  回复:2
1金币



将 导出的excel 作为数据源 ,导入到另一个系统。但是另一个系统 是按照字段注释作为字段标识的。

目前活字格导出来的没有 注释。有没有方法将注释也导出出来。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

使用SheetJS库。第一个参数是数据数组,第二个参数是字段:批注 对象。

2 个回复

倒序浏览
最佳答案
最佳答案
二麻子
中级会员   /  发表于:2024-11-1 16:01:23
来自 2#
  1. const jsonData = Forguncy.CommandHelper.getVariableValue("array_1");
  2. const commentsData = Forguncy.CommandHelper.getVariableValue("obj");

  3. const button = document.createElement('button');
  4. button.textContent = 'Download Excel';
  5. button.style.position = 'fixed';
  6. button.style.top = '10px';
  7. button.style.right = '10px';
  8. button.style.zIndex = 1000;
  9. document.body.appendChild(button);


  10. // 引入 SheetJS 库
  11. const script = document.createElement('script');
  12. script.src = 'https://cdn.sheetjs.com/xlsx-0.18.5/package/dist/xlsx.full.min.js';
  13. script.onload = () => {
  14.     // 点击按钮时生成并下载 Excel 文件
  15.     button.addEventListener('click', () => {
  16.         // 将 JSON 数据转换为工作表
  17.         const worksheet = XLSX.utils.json_to_sheet(jsonData);

  18.         // 为每个列标题添加相应的批注
  19.         const headers = Object.keys(jsonData[0]);
  20.         headers.forEach((header, index) => {
  21.             const cellAddress = XLSX.utils.encode_cell({ c: index, r: 0 });
  22.             const comment = commentsData[header];
  23.             if (comment) {
  24.                 if (!worksheet[cellAddress].c) {
  25.                     worksheet[cellAddress].c = [];
  26.                 }
  27.                 worksheet[cellAddress].c.push({ t: comment, a: "Author" });
  28.             }
  29.         });

  30.         // 创建工作簿并添加工作表
  31.         const workbook = XLSX.utils.book_new();
  32.         XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

  33.         // 将工作簿转换为二进制数据
  34.         const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });

  35.         // 创建 Blob 对象并触发下载
  36.         const blob = new Blob([wbout], { type: 'application/octet-stream' });
  37.         const url = URL.createObjectURL(blob);

  38.         // 输出下载链接
  39.         console.log('Download URL:', url);

  40.         const link = document.createElement('a');
  41.         link.href = url;
  42.         link.download = 'output.xlsx';
  43.         document.body.appendChild(link);
  44.         link.click();
  45.         document.body.removeChild(link);

  46.     });
  47. };

  48. document.body.appendChild(script);
复制代码

使用SheetJS库。第一个参数是数据数组,第二个参数是字段:批注 对象。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Joe.xu + 5 很给力!

查看全部评分

回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-4 11:49:15
3#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部