有没有办法从 csv 数据创建文件并下载它
Is there a way to create a file from csv data and download it
在 Wix 上,我有一个表单可以将大量信息(姓名、电子邮件、地址等)上传到数据库。然后我有一个单独的页面,从数据库中获取数据并将其编译成 CSV 格式。
它目前将其输出到一个文本框中,我可以从那里复制到一个 txt 文件并将扩展名更改为 csv。这对我来说非常好,但如果其他人也能这样做,我并不乐观。
所以,我的问题是是否有办法将数据转换成文件然后下载?
我的数据看起来像这样:
"_id, lastName, firstName
345893458,史密斯,约翰
我想通了,对于任何想知道这里是解决方案的人。
您需要在您的 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
确保该功能链接到按钮推送。
在 Wix 上,我有一个表单可以将大量信息(姓名、电子邮件、地址等)上传到数据库。然后我有一个单独的页面,从数据库中获取数据并将其编译成 CSV 格式。
它目前将其输出到一个文本框中,我可以从那里复制到一个 txt 文件并将扩展名更改为 csv。这对我来说非常好,但如果其他人也能这样做,我并不乐观。
所以,我的问题是是否有办法将数据转换成文件然后下载?
我的数据看起来像这样:
"_id, lastName, firstName
345893458,史密斯,约翰
我想通了,对于任何想知道这里是解决方案的人。
您需要在您的 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
确保该功能链接到按钮推送。