使用 flash、javascript、classic asp 从 html 创建 CSV

Create CSV from html using flash, javascript, classic asp

本文关键字:html 创建 CSV classic flash javascript 使用 asp      更新时间:2023-09-26

首先,我要声明我的最终目标是在我们网站的页面上创建一个导出到逗号分隔文件(.csv)或导出到Excel按钮。 我们的网站目前具有以XML格式返回数据的搜索机制。该 XML 将加载到 Microsoft.XMLDOM 对象中。

Dim objXMLDom
Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")

Function LoadXML(strXML)
    objXMLDOM.loadXML(strXML)
end function

此XML数据被解析为名为myData的变量,并使用不同的列和行显示在HTML网格中。 就像我上面说的,理想情况下,我想在页面上添加一个可以导出为 csv 或 Excel 的按钮。 我四处搜索,发现当代码在经典 ASP 中时,这不是一件容易的事......所以我找到了一个半工作解决方法。

解决方法是使用下载。 它是一个jquery/flash脚本,允许您将代码复制到DOM元素的HTML中,然后在客户端将数据全部拉回。 它在大多数情况下都有效...我遇到的唯一问题是添加新行字符。 我认为它在进入 HTML 后被删除并再次返回。

这是我如何将数据放入元素的代码

for (i = 0; i < <%=RowCount %>; i++) {
    parent.document.getElementById('data').innerHTML += ''n';
    for (j = 0; j < <%=columnCount%>; j++) {
        parent.document.getElementById('data').innerHTML += myData[i][j];
        parent.document.getElementById('data').innerHTML += ',';
    }
};

这是我用来将其拉出的方法:

function load() {
    Downloadify.create('downloadify', {
        filename: function() {
            return document.getElementById('filename').value;
        },
        data: function() {
            return document.getElementById('data').value;
        },
        onComplete: function() { alert('Your File Has Been Saved!'); },
        onCancel: function() { alert('You have cancelled the saving of this file.'); },
        onError: function() { alert('You must put something in the File Contents or there will be nothing to save!'); },
        swf: 'media/downloadify.swf',
        downloadImage: 'images/download.png',
        width: 100,
        height: 30,
        transparent: true,
        append: false
    }
    );
}

我真的不太了解 Flash,但我尝试放入不同的字符串('<br>''&#13;',甚至";:;")并使用 Flash 的替换方法在data : function部分中替换它们,但它似乎挂起并且永远不会完成处理(我认为这是因为我需要将替换方法放在 while 循环中,因为替换方法只替换一个实例,而我有很多实例)。

任何帮助将不胜感激。 提前谢谢你。

为什么不让ASP与html页面一起创建一个.csv文件? 这似乎会容易得多。

当我一起使用Flash和ASP时,我遇到了这样的问题。我记得从Flash打电话给ASP并挂起。我认为解决方法是在ASP页面的末尾添加一个"response.end"。这似乎告诉服务器,"完成。现在回到闪电侠。对不起,我不能更确定。那是很久以前的事了,我找不到代码。