Foxtable(狐表)用户栏目专家坐堂 → [求助]excel报表编程,求大神指点


  共有1993人关注过本帖树形打印复制链接

主题:[求助]excel报表编程,求大神指点

帅哥哟,离线,有人找我吗?
18523982317
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
[求助]excel报表编程,求大神指点  发帖心情 Post By:2016/12/13 16:49:00 [只看该作者]

由于专业报表不能修改,可视化专业报表不会,所以转用excel报表编程,现遇到几个问题
1、根据帮助定义了style的各种属性,但是某个写单元格的style属性跟其他不一样,例如这些单元格的Sheet1(ro1,42).Style.AlignHorz = XLS.AlignHorzEnum.Left,结果全部单元格的都靠左了,求解?
2、sheet1(4+num,0).Style.BackColor = Color.Red  这个表达式该如何写?单独定义某个单元格的背景颜色

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/13 16:54:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/scr/1160.htm

[此贴子已经被作者于2016/12/13 16:54:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/12/13 16:58:00 [只看该作者]

以下是引用有点蓝在2016/12/13 16:54:00的发言:
参考:http://www.foxtable.com/webhelp/scr/1160.htm

[此贴子已经被作者于2016/12/13 16:54:09编辑过]

我看了,不是没看懂,应该是没找到为什么
明明我只针对某些单元格靠左,结果全部靠左了,然后设置背景颜色报错。。。。
计算机运行代码的时候,是把前面的代码运行完了才运行后面的撒?没错啊。。。。就算前面所有单元格赋值了style属性,但是某些单元格也应该以我最后的设定的style属性为准啊。。。

[此贴子已经被作者于2016/12/13 16:58:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/13 17:02:00 [只看该作者]

只能说你确实是没有看懂

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red 
'设置样式的字体颜色
Sheet(
0,0).Style = Style

不能直接设置sheet1(0,0).Style.BackColor = Color.Red 

 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/12/13 17:06:00 [只看该作者]

下面是最后引用style属性的代码。。。求解,为什么全部变红了,二是全部靠左了。。。。

For ro As Integer = 5 To num + 4 Step +1
    sheet1.Rows(ro).Height = 22
    For co As Integer =0 To 42 Step +1
        Sheet1(ro,co).Style = Style
        If  Sheet1(ro,co).Value = "0" Then
            Sheet1(ro,co).Value = ""
        End If
    Next
Next
For ro1 As Integer = 5 To num + 4 Step +1
    If sts2.Contains(ro1) Then
        Sheet1(ro1,0).Style.BackColor = Color.Red
    Else
        Sheet1(ro1,42).Style.AlignHorz = XLS.AlignHorzEnum.Left
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/12/13 17:13:00 [只看该作者]

以下是引用有点蓝在2016/12/13 17:02:00的发言:
只能说你确实是没有看懂

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red 
'设置样式的字体颜色
Sheet(
0,0).Style = Style

不能直接设置sheet1(0,0).Style.BackColor = Color.Red 

多谢  实验了下 正确了  我懂了,原来都必须重新定义。。。这一点 比专业报表烦人啊。。。


 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/12/13 17:36:00 [只看该作者]

所有定义样式的代码,特定的行,可以变色了,但是死活不能靠左。。。。求解。。。

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.BorderTop = XLS.LineStyleEnum.Thin
Style.BorderBottom = XLS.LineStyleEnum.Thin
Style.BorderLeft = XLS.LineStyleEnum.Thin
Style.BorderRight = XLS.LineStyleEnum.Thin
Style.AlignHorz = XLS.AlignHorzEnum.Center
Style.AlignVert = XLS.AlignVertEnum.Center
style.Font = New Font("Times New Roman",9)
style.WordWrap = True
For ro As Integer = 5 To num + 4 Step +1
    sheet1.Rows(ro).Height = 22
    For co As Integer =0 To 42 Step +1
        Sheet1(ro,co).Style = Style
        If  Sheet1(ro,co).Value = "0" Then
            Sheet1(ro,co).Value = ""
        End If
    Next
Next

For ro1 As Integer = 5 To num + 4 Step +1
    If sts2.Contains(ro1-4) Then
        Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
        style1.BackColor = Color.Gainsboro
        style1.AlignHorz = XLS.AlignHorzEnum.Left
        style1.AlignVert = XLS.AlignVertEnum.Center
        style1.BorderTop = XLS.LineStyleEnum.Thin
        style1.BorderBottom = XLS.LineStyleEnum.Thin
        style1.BorderLeft = XLS.LineStyleEnum.Thin
        style1.BorderRight = XLS.LineStyleEnum.Thin
        style1.AlignHorz = XLS.AlignHorzEnum.Center
        style1.AlignVert = XLS.AlignVertEnum.Center
        style1.Font = New Font("Times New Roman",9)
        Sheet1(ro1,0).Style = style1
    Else
        Dim Style2 As XLS.Style = Book.NewStyle() '定义新样式
        style2.AlignHorz = XLS.AlignHorzEnum.Left
        style2.AlignVert = XLS.AlignVertEnum.Center
        style2.BorderTop = XLS.LineStyleEnum.Thin
        style2.BorderBottom = XLS.LineStyleEnum.Thin
        style2.BorderLeft = XLS.LineStyleEnum.Thin
        style2.BorderRight = XLS.LineStyleEnum.Thin
        style2.AlignHorz = XLS.AlignHorzEnum.Center
        style2.AlignVert = XLS.AlignVertEnum.Center
        style2.Font = New Font("Times New Roman",7)
        Sheet1(ro1,42).Style = style2
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/13 17:50:00 [只看该作者]

代码看不出问题,上例子测试

Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
style1.BackColor = Color.Gainsboro
style1.AlignHorz = XLS.AlignHorzEnum.Left
style1.AlignVert = XLS.AlignVertEnum.Center
style1.BorderTop = XLS.LineStyleEnum.Thin
style1.BorderBottom = XLS.LineStyleEnum.Thin
style1.BorderLeft = XLS.LineStyleEnum.Thin
style1.BorderRight = XLS.LineStyleEnum.Thin
style1.AlignHorz = XLS.AlignHorzEnum.Center
style1.AlignVert = XLS.AlignVertEnum.Center
style1.Font = New Font("Times New Roman",9)

Dim Style2 As XLS.Style = Book.NewStyle() '定义新样式
style2.AlignHorz = XLS.AlignHorzEnum.Left
style2.AlignVert = XLS.AlignVertEnum.Center
style2.BorderTop = XLS.LineStyleEnum.Thin
style2.BorderBottom = XLS.LineStyleEnum.Thin
style2.BorderLeft = XLS.LineStyleEnum.Thin
style2.BorderRight = XLS.LineStyleEnum.Thin
style2.AlignHorz = XLS.AlignHorzEnum.Center
style2.AlignVert = XLS.AlignVertEnum.Center
style2.Font = New Font("Times New Roman",7)

For ro1 As Integer = 5 To num + 4 Step +1
    If sts2.Contains(ro1-4) Then
        Sheet1(ro1,0).Style = style1
    Else
        Sheet1(ro1,42).Style = style2
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/13 17:54:00 [只看该作者]

 你全部都设置成了居中,怎么可能靠左?要改成left

 

    style2.AlignHorz = XLS.AlignHorzEnum.Center


 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:857 积分:6156 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/12/13 17:59:00 [只看该作者]

我突然想起来,是不是我是word2013版,有什么特殊的地方之类的?  麻烦看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip

[此贴子已经被作者于2016/12/13 17:58:46编辑过]

 回到顶部
总数 17 1 2 下一页