gpt4 book ai didi

c# - 使用 GetResponseStream 和 SpreadsheetDocument.Open 读取 xls 流

转载 作者:行者123 更新时间:2023-12-04 21:24:40 25 4
gpt4 key购买 nike

我想从服务器读取 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();

我的代码在 SpreadsheetDocument.Open 上停止,它给出了以下错误:

Cannot operate on stream that does not support seeking.



我在做什么错,为什么我无法打开文档?

最佳答案

您收到此错误是因为 SpreadsheetDocument 的 Open 方法需要 seekable stream目的。您的流变量是 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);

关于c# - 使用 GetResponseStream 和 SpreadsheetDocument.Open 读取 xls 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23865865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com