首页 新闻 搜索 专区 学院

c# 读取远程Url excel

-1
悬赏园豆:5 [已解决问题] 解决于 2018-05-30 16:23

BinaryFormatter serializer = new BinaryFormatter();
using (System.IO.MemoryStream memStream = new System.IO.MemoryStream())
{
memStream.Position = 0;
WebClient webClient = new WebClient();
var obj = webClient.DownloadData(fileName);//fileName 是远程url地址,可以url直接下载
serializer.Serialize(memStream, obj);
workbook = new HSSFWorkbook(memStream); //在这儿就报错了,报错异常在下面
}

异常:ICSharpCode.SharpZipLib.Zip.ZipException: 'EOF in header'

秋先生的主页 秋先生 | 初学一级 | 园豆:18
提问于:2018-05-30 11:57
< >
分享
最佳答案
0

1、你看下memStream里面有没有东西。

2、如果有,应该就是指针问题了,你序列化到memStream后,需要将指针 memStream.position=0,类似这样。

收获园豆:5
爱编程的大叔 | 高人七级 |园豆:30753 | 2018-05-30 12:33

是有数据的  ,根据您第第二步骤memStream.Position=0 设置后出现了下面异常

ICSharpCode.SharpZipLib.Zip.ZipException: 'Wrong Local header signature: 0x100'

秋先生 | 园豆:18 (初学一级) | 2018-05-30 13:00

你的这个方法不可以,但是这个是我第一次提问,您是第一人回答,点赞,有缘

秋先生 | 园豆:18 (初学一级) | 2018-05-30 16:24
其他回答(1)
0

memStream.Position = 0;
WebClient webClient = new WebClient();
var obj = webClient.DownloadData(fileName);//fileName 是远程url地址,可以url直接下载
Stream stream = new MemoryStream(obj);
workbook = new XSSFWorkbook(stream);

秋先生 | 园豆:18 (初学一级) | 2018-05-30 16:20

这个是解决的方案,查询了一些资料,没有必要转来转去的 直接这样就是OK的

支持(0) 反对(0) 秋先生 | 园豆:18 (初学一级) | 2018-05-30 16:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册