以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]绘制单元格颜色导出exlce  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128750)

--  作者:湛江智
--  发布时间:2018/12/14 10:24:00
--  [求助]绘制单元格颜色导出exlce
 如题,下面代码导不出 绘制单元格的颜色,
要导出绘制单元格颜色,求助


Dim tt As Table = Tables("员工资料")
Dim file As String = "d:\\内部通讯录.xls"
Dim flg As New SaveExcelFlags
flg.CellStyle = True
tt.SaveExcel(file ,tt.name,flg)

Dim Book As New XLS.Book(file)
Dim Sheet1 As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() \'定义新样式
Style.ForeColor = Color.Crimson \'设置样式的字体颜色
\'Style.ForeColor = Color.Blue \'设置样式的字体颜色
Style.FontBold = True
\'Style.BackColor = Color.Cyan
\'Style.BackColor = Color.LightCyan
Style.BackColor = Color.LightGray

Style.BorderTop = XLS.LineStyleEnum.None
Style.BorderBottom = XLS.LineStyleEnum.None
Style.BorderLeft = XLS.LineStyleEnum.None
Style.BorderRight = XLS.LineStyleEnum.None
style.AlignVert = XLS.AlignVertEnum.Center

For n As Integer = 0 To Sheet1.Rows.Count -1

\'\'导出逻辑列 打钩
    \'If Sheet1(n,6).Value = "1" Then
        \'Sheet1(n,6).Value = "√"
    \'Else
        \'Sheet1(n,6).Value = ""
    \'End If
\'\'导出逻辑列 打钩

    If Sheet1(n,0).Value.contains("_") Then
        If n > 2 Then
            For c As Integer = 0 To 39
                Sheet1 (n,c).Style = Style
            Next
        End If
    Else
        For c As Integer = 0 To 39
            try
                \'If Sheet1(n,c).Style.BackColor.G <> 255 Then
If Sheet1(n,c).Style.BackColor.G <> 255 OrElse Sheet1(n,c).Style.BackColor.R <> 255 OrElse Sheet1(n,c).Style.BackColor.B <> 255 Then
                Else
                    Sheet1(n,c).Style = book.NewStyle
                End If
               
            catch ex As exception
                Sheet1(n,c).Style = book.NewStyle
               
            End try
            Sheet1(n,c).Style.BorderTop = XLS.LineStyleEnum.Thin
            Sheet1(n,c).Style.BorderBottom = XLS.LineStyleEnum.Thin
            Sheet1(n,c).Style.BorderLeft = XLS.LineStyleEnum.Thin
            Sheet1(n,c).Style.BorderRight = XLS.LineStyleEnum.Thin
            Sheet1(n,c).Style.BorderColorTop = Color.Gray
            Sheet1(n,c).Style.BorderColorBottom = Color.Gray
            Sheet1(n,c).Style.BorderColorLeft = Color.Gray
            Sheet1(n,c).Style.BorderColorRight = Color.Gray
            Sheet1(n,c).Style.AlignVert = XLS.AlignVertEnum.Center
            Sheet1(n,c).Style.AlignHorz = XLS.AlignHorzEnum.Center
           
        Next
    End If
Next


Book.Save(file)
Dim Proc As New Process
Proc.File = file
Proc.Start()

--  作者:有点甜
--  发布时间:2018/12/14 10:34:00
--  

1、单独执行这个代码,能否导出?

 

Dim tt As Table = Tables("员工资料")
Dim file As String = "d:\\内部通讯录.xls"
Dim flg As New SaveExcelFlags
flg.CellStyle = True
tt.SaveExcel(file ,tt.name,flg)

 

2、是不是这个问题?

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125505&authorid=0&page=0&star=2

 

3、实例发上来测试

 


--  作者:湛江智
--  发布时间:2018/12/14 11:40:00
--  回复:(有点甜)1、单独执行这个代码,能否导出?&...

大师,执行上楼代码

1 导出绘制单元格颜色失败

2 可能是分组统计颜色的问题————之前的求助帖子

3、辛苦调试下面项目:

 

加密狗不能升级了,高于2018-07-09版本打不开,不会意思哈

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


--  作者:有点甜
--  发布时间:2018/12/14 12:21:00
--  

更换颜色即可。换一种可以正常的颜色

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125505&authorid=0&page=0&star=2

[此贴子已经被作者于2018/12/14 12:22:43编辑过]

--  作者:有点甜
--  发布时间:2018/12/14 12:24:00
--  

我测试例子,没问题,导出的数据有颜色的。

 

Dim tt As Table = Tables("室内设计项目")
Dim file As String = "d:\\内部通讯录.xls"
Dim flg As New SaveExcelFlags
flg.CellStyle = True
tt.SaveExcel(file ,tt.name,flg)


--  作者:湛江智
--  发布时间:2018/12/14 14:04:00
--  回复:(有点甜)我测试例子,没问题,导出的数据有颜...

大师,上楼代码,导出excle  进度列,单元格绘制的颜色失败

 


图片点击可在新窗口打开查看此主题相关图片如下:进度列颜色导不出来.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/12/14 14:04:45编辑过]

--  作者:有点甜
--  发布时间:2018/12/14 15:26:00
--  

对于直接绘制的内容,导出的时候,不会绘制的。

 

你可以直接在excel里面设置进度条,如

 

https://jingyan.baidu.com/article/8cdccae931aa10315413cdd3.html

 

https://jingyan.baidu.com/article/495ba841b15beb38b30edeac.html

 


--  作者:湛江智
--  发布时间:2018/12/14 15:43:00
--  回复:(有点甜)对于直接绘制的内容,导出的时候,不...
 大师,因为导出的 进度列 颜色是每天动态且多种色彩的,在excle里设置实在是不方便,辛苦有空帮帮了
或者有参考的例子,可以参考嘛?

--  作者:有点甜
--  发布时间:2018/12/14 17:04:00
--  
以下是引用湛江智在2018/12/14 15:43:00的发言:
 大师,因为导出的 进度列 颜色是每天动态且多种色彩的,在excle里设置实在是不方便,辛苦有空帮帮了
或者有参考的例子,可以参考嘛?

 

没办法,这个没办法。你可以学习vba,录制宏看代码,然后改写成foxtable,动态操作excel动态设置颜色

 

http://www.foxtable.com/webhelp/scr/2121.htm