Fre*_*ddy 1 c# excel webrequest stream
我想从服务器读取 xls。我成功地使用 WebClient 下载了文件,但现在我想在不保存文件的情况下打开它。
var request = WebRequest.Create(location);
var response = request.GetResponse();
var stream = response.GetResponseStream();
var document = SpreadsheetDocument.Open(stream, false);
if (stream != null) stream.Close();
Run Code Online (Sandbox Code Playgroud)
我的代码在 SpreadsheetDocument.Open 上停止,它给出了以下错误:
无法对不支持查找的流进行操作。
我做错了什么,为什么我无法打开文档?
您收到此错误是因为 SpreadsheetDocument 的 Open 方法需要一个可查找的流对象。您的流变量是NetworkStream 的一个实例,不支持搜索。您必须将网络流复制到本地流(例如MemoryStream)中才能在您的代码中使用它
var request = WebRequest.Create(location);
var response = request.GetResponse();
var memoryStream = new MemoryStream();
using (var networkStream = response.GetResponseStream())
{
if (networkStream != null)
{
// Copy the network stream to an in-memory variable
networkStream.CopyTo(memoryStream);
// Move the position of the stream to the beginning
memoryStream .Seek(0, SeekOrigin.Begin);
}
}
var document = SpreadsheetDocument.Open(memoryStream , false);
Run Code Online (Sandbox Code Playgroud)