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'
1、你看下memStream里面有没有东西。
2、如果有,应该就是指针问题了,你序列化到memStream后,需要将指针 memStream.position=0,类似这样。
是有数据的 ,根据您第第二步骤memStream.Position=0 设置后出现了下面异常
ICSharpCode.SharpZipLib.Zip.ZipException: 'Wrong Local header signature: 0x100'
你的这个方法不可以,但是这个是我第一次提问,您是第一人回答,点赞,有缘
memStream.Position = 0;
WebClient webClient = new WebClient();
var obj = webClient.DownloadData(fileName);//fileName 是远程url地址,可以url直接下载
Stream stream = new MemoryStream(obj);
workbook = new XSSFWorkbook(stream);
这个是解决的方案,查询了一些资料,没有必要转来转去的 直接这样就是OK的