27

ftp サイトから直接メモリ ストリームに Excel ファイルをロードしたいと考えています。次に、OpenExcel(Stream) メソッドを使用して、FarPoint Spread コントロールでファイルを開きたいと考えています。私の問題は、ファイルをメモリに直接ダウンロードできるかどうかわからないことです。これが可能かどうか知っている人はいますか?

4

3 に答える 3

40

はい、FTP からメモリにファイルをダウンロードできます。

FTP サーバーから Stream を渡して FarPoint で処理することもできると思います。

WebRequest request = FtpWebRequest.Create("ftp://asd.com/file");

using (WebResponse response = request.GetResponse())
{
    Stream responseStream = response.GetResponseStream();
    OpenExcel(responseStream);
}

WebClient を使用すると、ほぼ同じことができます。一般に、WebClient を使用する方が簡単ですが、構成オプションと制御が少なくなります (例: タイムアウト設定なし)。

WebClient wc = new WebClient();
using (MemoryStream stream = new MemoryStream(wc.DownloadData("ftp://asd.com/file")))
{
    OpenExcel(stream);
}
于 2013-10-30T15:16:19.640 に答える
24

WebClient.DownloadDataを見てください。ファイルディレクトリをメモリにダウンロードでき、最初にファイルに書き込む必要はありません。

これはテストされていませんが、次のようなものです。

var spreadSheetStream
    = new MemoryStream(new WebClient().DownloadData(yourFilePath));

OpenExcelただし、ストリームをメソッドで直接使用できるかどうかについては、FarPoint には詳しくありません。オンラインの例では、メソッドが aFileStreamで使用されていることが示されていますが、あらゆる種類のStreamが受け入れられると思います。

于 2013-10-30T15:22:37.073 に答える