私の最終的な目標は、サイトのページに [カンマ区切りファイル (.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>'
、' '
、さえ";:;"
)を入れて、 data : function
Flashのreplaceメソッドを使用して部品に置き換えてみましたが、ハングしているようで処理が完了しません(これはreplace メソッドは 1 つのインスタンスのみを置換し、多数あるため、replace メソッドを while ループに入れる必要がありました)。
どんな助けでも大歓迎です。前もって感謝します。