找回密码
 立即注册

QQ登录

只需一步,快速开始

moonlight108

初级会员

11

主题

65

帖子

465

积分

初级会员

积分
465

活字格认证

moonlight108
初级会员   /  发表于:2013-12-13 11:00  /   查看:29784  /  回复:48
由于后台系统是C/S,用FarPoint.Win.Spread做的数据和样式保存。请问,前台页面能用FarPoint.Web.Spread读取打开吗?我现在open后FpSpread里为空,什么也没有。后台FarPoint.Win.Spread保存读取展示都是可以。主要是用到了FarPoint.Win.Spread.Design控件,做了些
sparklines图形。FarPoint.Web.Spread支持sparklines图形吗?
后台内容如图:
QQ截图20131213110853.png
希望前台网页能原样展示。

48 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-12-13 11:09:00
沙发
回复 1楼moonlight108的帖子

moonlight108 你好,

FarPoint.Web.Spread是支持sparklines波形图功能的。
如果需要跨平台交互,可以存储为 Excel 格式文件。
当前 XML 格式还无法跨平台使用。

谢谢
回复 使用道具 举报
moonlight108
初级会员   /  发表于:2013-12-13 11:15:00
板凳
回复 2楼iceman的帖子

我使用的是流保存fpSpread1.Save(stream, false);
如果用fpSpread1.SaveExcel( .....) ,后台fpSpread1读取后就只有字符和数据,没有sparklines图形。
但前台用FpSpread1.Open(stream)打开后什么也没有。后台这样写,是原样展示的。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-13 16:19:00
地板
回复 3楼moonlight108的帖子

附件是通过 CS 程序保存 Sparkline 后,再通过 BS Spread 打开的示例,请参考:
Spread_Sparkline.zip (3.65 MB, 下载次数: 1254)
回复 使用道具 举报
moonlight108
初级会员   /  发表于:2013-12-13 17:42:00
5#
回复 4楼iceman的帖子

谢谢写了例子。但是还是不能满足我的需求。首先,必须保存在数据库里,而且字段是nvarchar(max)类型。也就是不能借助于一个实际存在的Excel文件来操作。其次,保存的内容在Winform下也是要可以直接还原预览的。换句话说,Winform保存的内容在数据库中,FarPoint.Win.Spread和FarPoint.Web.Spread都要能正确展示。
在Winform方式我这样保存,能在Winform下完全恢复。
保存代码:MemoryStream stream = new MemoryStream();
            fpSpread1.Save(stream, false);
            stream.Position = 0;
    int leng = stream.Length < Int32.MaxValue ? (int)stream.Length : 0;
            byte[] by = new byte[leng];
            stream.Read(by, 0, leng);
            string sContent = Convert.ToBase64String(by);
            stream.Close();
恢复代码:byte[] buf = Convert.FromBase64String(sContent);
            MemoryStream ms = new MemoryStream(buf);
             fpSpread1.Open(ms);
            ms.Close();
但是恢复代码在Web环境下不好使,fpSpread1什么都没展示。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-16 11:26:00
6#
回复 5楼moonlight108的帖子

直接用 Save 方法存储为字节流的方法不仅仅记录了 Spread 的数据及样式,也同时记录了相应的接口名称。这样在使用 Spread for ASP.NET 读取时无法识别相应接口名称,所以无法获取成功。

如果需要两个平台使用同一文件,那么需要保存为 excel 格式文件,可以先保存为 Excel 文件再转换为 byte[],存入数据库。相应的在使用 Spread ASP.NET 读取时,则需要先保存byte[]为本地excel文件,再读取。
回复 使用道具 举报
moonlight108
初级会员   /  发表于:2013-12-17 13:21:00
7#
回复 6楼iceman的帖子

改用SaveExcel 保存代码:MemoryStream stream = new MemoryStream();
            fpSpread1.SaveExcel(stream, FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
            stream.Position = 0;
    int leng = stream.Length < Int32.MaxValue ? (int)stream.Length : 0;
            byte[] by = new byte[leng];
            stream.Read(by, 0, leng);
            string sContent = Convert.ToBase64String(by);
            stream.Close();
恢复代码:byte[] buf = Convert.FromBase64String(sContent);
            MemoryStream ms = new MemoryStream(buf);
             fpSpread1.OpenExcel(ms);
            ms.Close();
在Winform下可恢复,但是恢复代码在Web环境下依然不好使,fpSpread1这次能展示数字和字符,但是做的波形图却没有展示出来。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-17 18:45:00
8#
回复 7楼moonlight108的帖子

我和你的测试结果不同,使用 7# 中的代码保存后,可以成功加载数据及波形图:

Spread_Win_Sparkline.zip (59.99 KB, 下载次数: 2911)
回复 使用道具 举报
moonlight108
初级会员   /  发表于:2013-12-18 10:15:00
9#
回复 8楼iceman的帖子

在Winform下是可以保存和恢复啊。但是恢复代码原样在Web环境下就不好使了,波图形丢了。其他字符数字在。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-18 13:18:00
10#
回复 9楼moonlight108的帖子

是否在 WebConfig 文件中配置相应httpHandlers:
http://blog.gcpowertools.com.cn/ ... eb_importchart.aspx
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部