找回密码
 立即注册

QQ登录

只需一步,快速开始

lqswily

新手上路

1

主题

3

帖子

33

积分

新手上路

积分
33
  • 30

    金币

  • 主题

  • 帖子

最新发帖
lqswily
新手上路   /  发表于:2011-11-2 16:40  /   查看:8508  /  回复:5
如题。
2个问题。
1.导出excel,是不是,不支持spread中的图片导出?
有没有办法,能导出。还是说,直接用spread就是不能导出。
2.导出excel时,spread的网格线,没有被导出。背景颜色导出了,但是,网格线,没有导出。
请问,如何导出网格线,我不需要导出表头等,只导内容,但是需要网格线。
谢谢,各位。请教大家。

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2011-11-2 18:31:00
沙发
你好,
1. Spread for ASP.NET 不支持导出图片到 Excel 文件。
2.我用以下代码设置网格线并且导出到 Excel 文件,网格线正常显示:

  1. FarPoint.Web.Spread.SheetView sv = FpSpread1.ActiveSheetView;
  2.             sv.GridLines = GridLines.Horizontal;
  3.             sv.GridLineColor = Color.Red;
  4.             this.FpSpread1.SaveExcel(@"E:\test.xls");
复制代码
效果图:

png

png
回复 使用道具 举报
lqswily
新手上路   /  发表于:2011-11-3 09:40:00
板凳
不好意思,还是不行。
1. spread,无论是显示,还是不显示(我是不显示spread,代码中会计算并赋值,然后,把spread的结果,导出到excel)。
2. 无论是保存到本地;还是下载对话框;或者是写入流,再下载对话框
(1)this.spdOrder.SaveExcel(@"D:\test.xls");
(2)this.spdOrder.SaveExcelToResponse("test.xls");
(3)this.spdExcel.SaveExcel(ms, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed);
都还是那样,没有网格线。
  1. FarPoint.Web.Spread.SheetView sv = this.spdOrder.ActiveSheetView;
  2.         sv.GridLines = GridLines.Both;
  3.         sv.Protect = false;
  4.         sv.GridLineColor = Color.Black;
复制代码

图,因为没有上传的地方,所以,就不发了。但是,真的是没有线。
但是,spread本身自己有网格线。
另外就是,我的线,要求的挺细致,有些行要实线,有些要虚线。
请帮忙,谢谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-11-3 11:09:00
地板
你好,
1.请问你的表单是否设置了皮肤?如果表单设置了皮肤,那么网格线将被覆盖,请设置皮肤为 default。

2.可以通过边框设置来实现实线,虚线的需求。参考代码:

  1. this.FpSpread1.ActiveSheetView.Columns[0].Border.BorderStyle = BorderStyle.Solid;
  2. this.FpSpread1.ActiveSheetView.Columns[0].Border.BorderSize = 5;
复制代码
如果以上不能满足需求,请你制作 Demo 发到论坛上来。便于我确定问题位置。
添加附件参考:http://gcdn.grapecity.com/showtopic-385.html
回复 使用道具 举报
lqswily
新手上路   /  发表于:2011-11-3 13:49:00
5#
谢谢。
网格,已经搞定了。
解决方法就是,要给每一个单元格,设置border。并且,正好解决了实线,虚线的控制。

现在又出现新的问题了,仅仅saveexcel还不够,因为,spread的内容,并不是一行一个数据,因为涉及很多合计的东西,所以,需要设定打印的换页。
就是说,要控制,如果这一页不能打印一个数据单元的话,要在上一个数据单元的最后一行处,换页。
我用的是NPOI,好像不能控制到分页。
请问,有什么好的解决办法?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-11-4 18:30:00
6#

回复 5# lqswily 的帖子

你好,可以通过 PrintSheet 事件的 e.PageBreak 手动添加分页,代码如下:

  1.         protected void FpSpread1_PrintSheet(object sender, FarPoint.Web.Spread.PrintEventArgs e)
  2.         {
  3.             if (e.Row==2)
  4.             {
  5.                 e.PageBreak = true;
  6.             }
  7.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部