找回密码
 立即注册

QQ登录

只需一步,快速开始

LeeDongmei
金牌服务用户   /  发表于:2014-9-30 13:08:00
14#
Excel明细行问题解决,但标题栏内还是没有格线。
另外,若size=2px,形成的PDF文件就不好看了,线太粗了,而且边缘也设定不上了。
请看效果: Bordersize2_PDF.png (251.07 KB, 下载次数: 68)
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-30 12:29:00
13#
网格线按照 9# 中提供的方法可以实现你的需求吗
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-30 11:57:00
12#
谢谢版主的解答!Excel数据格式的问题圆满解决!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-30 10:58:00
11#
  1.         Dim ObjDoubleCell_2 As New FarPoint.Web.Spread.GeneralCellType()    '2位小数
  2.         Dim NumForm2 As New System.Globalization.NumberFormatInfo
  3.         NumForm2.CurrencySymbol = ""
  4.         ObjDoubleCell_2.FormatString = "c"
  5.         ObjDoubleCell_2.NumberFormat = NumForm2

  6.         Dim c As Integer
  7.         For c = 4 To 18
  8.             FpSpread.Sheets(0).Columns(c).CellType = ObjDoubleCell_2
  9.             FpSpread.Sheets(0).Columns(c).HorizontalAlign = HorizontalAlign.Right
  10.         Next
复制代码


test20140930.zip (2.29 MB, 下载次数: 78)
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-30 08:32:00
10#
添加ObjDoubleCell_2.FormatString = "c2"
测试结果:
Spread中,数字前多出奇怪符号
C2_Spread.png (156.3 KB, 下载次数: 168)
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-29 17:28:00
9#
导出Excel时发生的问题:
1.标题栏内的格线都消失了。
2.明细栏内的格线,在打印预览时也消失了。

针对边线,目前Excel和PDF无法做到完全一致,如果以Excel位置,可以调整Border.Size为2px。
明细栏内的格线可以设置 Sheets[0].DefaultStyle.Boder.BoderSize = 2px.
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-29 16:16:00
8#
回复 7楼LeeDongmei的帖子

请再添加以下属性设置进行测试:
  1. ObjDoubleCell_2.FormatString = "c2"
复制代码
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-29 15:45:00
7#
谢谢版主的及时回复!
经过测试Currency的类型确实能导出千分位,但无法满足小数位的要求。
我的数据是从数据库取出的,单纯是做表,没有数据修正。
做表时要求表示成两位小数,例:
12345.2要表示成 12,345.20
12345   要表示成 12,345.00
定义成Currency后,小数位上补位的0都不见了。
另外,我原来这样定义celltype的:
        Dim ObjDoubleCell_2 As New FarPoint.Web.Spread.GeneralCellType()    '2位小数
        Dim NumForm2 As New System.Globalization.NumberFormatInfo
        NumForm2.NumberDecimalDigits = 2
        NumForm2.NumberDecimalSeparator = "."
        NumForm2.NumberGroupSeparator = ","
        ObjDoubleCell_2.NumberFormat = NumForm2

        Dim i As Integer
        For i = 4 To 18
            FpSpread.Sheets(0).Columns(i).CellType = ObjDoubleCell_2
            FpSpread.Sheets(0).Columns(i).HorizontalAlign = HorizontalAlign.Right
        Next
页面上显示正常,但导出Excel后,
12,345.20 变成 12345.2
12,345.00 变成 12345
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-29 15:08:00
6#
LeeDongmei,

导出Excel时发生的问题:
3.明细栏中定义的数据格式没有了(例如:定义数字类型时,有千分位及两位小数,导出后,千分位没有了,小数位也没有保持两位,我的例子中没有数据加载,可能的话,请添加一些数据测试。)

回答:我这边调查的结果是因为没有为该列设置CellType,比如设置【1月】列的CellType为Currency便可导出千分位,附件是我修改后的spread模板文件你可以测试。
在Page_Init事件中注释掉现在全部代码,并通过以下代码加载模板xml文件:
  1. FpSpread.Open(Server.MapPath("template1.xml"))
复制代码



template1.zip (5.49 KB, 下载次数: 155)
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-29 14:31:00
5#
补充说明一下,我的环境是:
VS2008+SQL2008+Spread for ASP.net 4.0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部