【问题标题】:Is there a way to create a file from csv data and download it有没有办法从 csv 数据创建文件并下载它
【发布时间】:2019-04-03 15:51:49
【问题描述】:

在 wix 上,我有一个将一堆信息上传到数据库(姓名、电子邮件、地址等)的表单。然后我有一个单独的页面,它从数据库中获取数据并将其编译成 CSV 格式。

它目前将其输出到一个文本框中,我可以从那里复制到一个 txt 文件并将扩展名更改为 csv。这对我来说非常好,但如果其他人也能做到这一点,我并不肯定。

那么,我的问题是,是否有办法将该数据转换为文件然后下载?

我的数据看起来像这样:

"_id、姓氏、名字

345893458,史密斯,约翰"

【问题讨论】:

    标签: javascript velo


    【解决方案1】:

    我想通了,对于任何想知道这里的解决方案的人。

    你需要在你的 wix 页面上创建一个 iframe 对象

    然后您将其 html 代码更改为如下内容:

    <!doctype html>
    <html>
    <head>
    
    <script type="text/javascript">
      function init () {
        window.onmessage = (event) => {
          if (event.data) {
            download('data.csv', event.data)
          }
        }
      }
    
      //download file
      function download(filename, text) {
        var element = document.createElement('a');
        element.setAttribute('href', 'data:text/plain;charset=utf-8,' +                     encodeURIComponent(text));
        element.setAttribute('download', filename);
    
        element.style.display = 'none';
        document.body.appendChild(element);
    
        element.click();
    
        document.body.removeChild(element);
      }
    
      </script>
    
    </head>
      <body onload="init();" style="background-color:black;">
      </body>
    </html>
    

    注意设置背景颜色很重要,不完全确定为什么,但我很确定它会以某种方式初始化代码。

    接下来你想在你的 wix 代码编辑器中添加这样一行

    export function button2_click(event) {
      // send message to the HTML Component
      let data = $w('#output').value
      $w("#html1").postMessage(data);
    }
    

    'output' 是包含 csv 数据的文本框的 id(您可以从其他地方获取数据),'html1 是 iframe 容器的 id

    确保该功能已链接到按钮。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2023-02-07
      • 1970-01-01
      • 2019-11-30
      • 2018-12-17
      • 2021-02-12
      • 2020-10-01
      • 2022-12-14
      • 2019-09-18
      相关资源
      最近更新 更多