0

私の最終的な目標は、サイトのページに [カンマ区切りファイル (.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 にエクスポートできるボタンをページに追加したいと考えています。コードがClassic ASPにある場合、これは簡単な作業ではないことがわかりました...そのため、半回避策を見つけました。

回避策は、 Downloadifyを使用することです。これは、コードを DOM 要素の HTML にコピーし、そのデータをクライアント側ですべて引き出すことができる jquery/flash スクリプトです。それはほとんどの場合機能します...私が抱えている唯一の問題は、改行文字を追加することです。私は、それが削除されて 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;'、さえ";:;")を入れて、 data : functionFlashのreplaceメソッドを使用して部品に置き換えてみましたが、ハングしているようで処理が完了しません(これはreplace メソッドは 1 つのインスタンスのみを置換し、多数あるため、replace メソッドを while ループに入れる必要がありました)。

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

1

ASPにhtmlページと一緒に.csvファイルを作成させないのはなぜですか?それはずっと簡単なようです。

于 2012-05-29T17:28:17.820 に答える
0

FlashとASPを一緒に使っていたとき、しばらく前にこのような問題が発生しました。FlashからASPを呼び出したところ、ハングしたことを覚えています。修正は、ASPページの最後に「response.end」を追加することだったと思います。これは、サーバーに「完了しました。今すぐFlashに戻ります」と言っているようです。申し訳ありませんが、これ以上確信が持てません。ずっと前のことで、コードが見つかりません。

于 2012-06-01T07:35:01.090 に答える