【在线等高手回答】c#操作excel后,如何实现不保存,直接提供给客户端下载!采用的是(stream或者FileStream)的形式。

时间:2021-03-12 17:52:07
代码如下: 

    Application app = new Application(); 
    Workbooks wbks = app.Workbooks; 
    _Workbook _wbk = wbks.Add("E:/excel/testmodel.xls"); 
    Sheets shs = _wbk.Sheets; 
    //TODO 
    //对excel的操作; 
    
    //如何把现在系统里生成好的excel对象提供给用户打开或者下载?(注意:不在服务器保存) 

目前我的两个思路, 

1.FileStream,但是没有保存无法获得文件路径; 

2.stream,app不支持序列化; 

这两个都走不通,是不是在文件流这个方向上,要实现这样的业务是死路? 

有没有解决办法。或者别的解决模式? 

                                    ----一个初学C#的人。

分数有限,大家帮忙啊。

5 个解决方案

#1


最行不通的方法,你就先在服务器保存再删除就得了.

#2


引用 1 楼 ojekleen 的回复:
最行不通的方法,你就先在服务器保存再删除就得了.


这个办法提出过,上面的人不屑的说不考虑这种方法;
如果考虑这种方法,让你调查什么~~~

#3


Office 的COM 组件没有提供Save成Stream的接口

可以考虑一下第三方组件

#4


我发现你的上面的人很搞笑哦,
office的操作你可能注意到了有自动记忆的功能,其实也就是说你对excel的所有操作他都会生成一个临时文件对你的操作记录,以防止你的工作因为比如死机这类原因而丢失
也就是说,实际上,你在用c#对excel进行vba的时候,实际上office已经偷偷的将你的东西保持到硬盘了,只是如果你取消了保持他会删除这个临时文件,如果你保持文件他会将临时文件保持而已你们上面的做法实际上是没有意义的....

#5


引用 2 楼 luoao9527 的回复:
引用 1 楼 ojekleen 的回复:
最行不通的方法,你就先在服务器保存再删除就得了. 
 

这个办法提出过,上面的人不屑的说不考虑这种方法; 
如果考虑这种方法,让你调查什么~~~

这个...那个....分太少......

#1


最行不通的方法,你就先在服务器保存再删除就得了.

#2


引用 1 楼 ojekleen 的回复:
最行不通的方法,你就先在服务器保存再删除就得了.


这个办法提出过,上面的人不屑的说不考虑这种方法;
如果考虑这种方法,让你调查什么~~~

#3


Office 的COM 组件没有提供Save成Stream的接口

可以考虑一下第三方组件

#4


我发现你的上面的人很搞笑哦,
office的操作你可能注意到了有自动记忆的功能,其实也就是说你对excel的所有操作他都会生成一个临时文件对你的操作记录,以防止你的工作因为比如死机这类原因而丢失
也就是说,实际上,你在用c#对excel进行vba的时候,实际上office已经偷偷的将你的东西保持到硬盘了,只是如果你取消了保持他会删除这个临时文件,如果你保持文件他会将临时文件保持而已你们上面的做法实际上是没有意义的....

#5


引用 2 楼 luoao9527 的回复:
引用 1 楼 ojekleen 的回复:
最行不通的方法,你就先在服务器保存再删除就得了. 
 

这个办法提出过,上面的人不屑的说不考虑这种方法; 
如果考虑这种方法,让你调查什么~~~

这个...那个....分太少......