找回密码
 立即注册

QQ登录

只需一步,快速开始

yjpgyje

初级会员

13

主题

44

帖子

293

积分

初级会员

积分
293

活字格认证

yjpgyje
初级会员   /  发表于:2012-6-25 14:05  /   查看:11043  /  回复:12
在WinFrom下用的FpSpread的Save方法将FpSpread样式保存在数据库中
可不可以直接在Web下的使用FpSpread将数据库中的FpSpread样式读取出来???
(即,在WinFrom下设计一个FpSpread样式,使这个样式在Web下展现给用户)

12 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-6-25 14:50:00
沙发
回复 1楼yjpgyje的帖子

你好,如果是保存文件格式为 XML,由于两个平台 Spread 节点信息有所不同,所以无法通用,可以保存为 XLS 格式文件进行交互。
回复 使用道具 举报
yjpgyje
初级会员   /  发表于:2012-7-6 08:42:00
板凳
MemoryStream sm = new MemoryStream();
                fsPread1.Save(sm, false);
                byte[] bytes = sm.ToArray();
                sm.Write(bytes, 0, int.Parse((sm.Length - 1).ToString()));
                sm.Close();
                Model.XML = bytes;


我是用这种方式将FsPread样式存储到数据库中的.用
        MemoryStream smc = new MemoryStream(Model.XML);
                    this.fsPread1.Open(smc);  //加载样式信息
                    smc.Close();
这样读取可以在WEB下使用这些以存在的样式吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-6 09:18:00
地板
WinForms和WebForms中Spread模板需要通过Excel文件来实现共用

在WinForm的代码中需要使用 fpSpread1.SaveExcel()方法,WebForm中需要使用 FpSpread1.OpenExcel()
回复 使用道具 举报
yjpgyje
初级会员   /  发表于:2012-7-23 15:37:00
5#
回复 4楼dof的帖子

这个SaveExcel()方法还有一些参数,需要用那个参数可以把FpSpread里边所以的Sheet,和Sheet上的样式,(如合并单元格,字体颜色,等信息)都保存到数据库中呢.
我直接用SaveExcel(文件流),这样的方式存储到数据库中,但不能读取出来(WinForm下,Web下没有试).
MemoryStream sm = new MemoryStream();
                fsPread1.SaveExcel(sm);
                byte[] bytes = sm.ToArray();
读取方法
MemoryStream smc = new MemoryStream(Model.XML);
                    this.fsPread1.OpenExcel(smc);  //加载样式信息
                    smc.Close();
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-23 17:56:00
6#
yjpgyje 你好

我这里有一个将Spread模板保存到数据库的例子,你可以参考一下,需要在数据库中执行create table.txt文件中的SQL脚本。

VS2008 + Spread for WinForms 6.0.3505
WindowsFormsApplication1.zip (17.37 KB, 下载次数: 240)
回复 使用道具 举报
yjpgyje
初级会员   /  发表于:2012-7-25 15:45:00
7#
回复 6楼dof的帖子

现在问题基本上算是解决了,但还有一点问题就是用SaveExcel()保存的时候,我在设计器里以经把最大行,最大列设计好了.为什么我还要把这个信息再存一遍.如果用Save()方法就可以不用存储最大行最大列.有没有办法解决这个问题..
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-25 16:27:00
8#
如果使用Save方法保存时,保存的是Spread内部格式,所以能够将设置的行列数进行保存
使用SaveExcel保存的是Excel文件,Excel文件中不能够保存设置的行列数,所以需要对行列数进行单独保存。
如果调用SaveExcel的fpSpread1.OpenExcel("", FarPoint.Excel.ExcelOpenFlags.TruncateEmptyRowsAndColumns);重载方法,可以只导入有数据的区域。
回复 使用道具 举报
yjpgyje
初级会员   /  发表于:2012-7-26 14:00:00
9#
回复 8楼dof的帖子

用SaveExcel()方法保存的时候怎么能把单元格的Tag属性值也保存到数据库中,并且在读取的时候也能读取出来??
原来我用的Save()方法用Tag属性做为数据的标示,现在用SaveExcel()方法不能将Tag属性值保存到数据库.很麻烦...
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-26 17:47:00
10#
实在抱歉,SaveExcel没有保存tag的功能。你的模板如果只在WinForm平台中使,可以使用Save方法来保存。如果模板要在WinForm和ASP.NET中同时使用,就需要对tag进行单独保存,比如在数据库中在添加一列tags来保存所有的tag属性。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部