Foxtable(狐表)用户栏目专家坐堂 → [求助]网格线问题。


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

主题:[求助]网格线问题。

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
[求助]网格线问题。  发帖心情 Post By:2021/3/29 15:19:00 [显示全部帖子]

生成统计报表时加网格线用下面代码:
Tables("报表名").grid.styles.Normal.Border.Color = Color.Black '网格线颜色(黑色Black红色Red粉红Pink天蓝DeepSkyBlue绿色SpringGreen)
Tables("报表名").grid.styles.Normal.Border.Style = 1 '单格线
Tables("报表名").grid.styles.Normal.Border.width = 1 '网格线粗细
请问统计报表导出(Excel)时要加网格线 ,如何修改代码?请指教。谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:报表1.jpg
图片点击可在新窗口打开查看
变成:

图片点击可在新窗口打开查看此主题相关图片如下:报表2.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2021/3/29 15:24:38编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/3/29 17:04:00 [显示全部帖子]

Dim Values() As String = {"总分"}
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    For Each Value As String In Values
        If e.Form.Controls("年级").value Is Nothing Then
            MessageBox.Show("请选择或输入统计年级后再执行此操作","中止操作",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
        Else
            Dim nj As String = e.Form.Controls("年级").text
            If  Value <> "成绩库" And Value <> "校名设置" Then
                If DataTables.Contains(value & nj & "级目标") Then
                    Tables(value & nj & "级目标").SaveExcel(dlg.FileName,value & nj & "级目标") '保存文件
                    'DataTables.Delete(value & nj & "级目标") '删除原文件
                End If
            End If
            Dim book As new XLS.Book(dlg.FileName) '保存为Excel文件
            Dim sheet As XLS.Sheet = book.Sheets(value & nj & "级目标") '保存为Excel文件中的一个工作表
            Dim Style As Xls.Style = book.NewStyle '新建一个样式
            Style.ForeColor = Color.Red '样式的字体颜色设为红色
            Style.Font = new font("宋体",9,FontStyle.Bold) '宋体,9号,红色,加粗
            Style.AlignHorz = XLS.AlignHorzEnum.Center '居中
            Style.AlignVert = XLS.AlignVertEnum.Center '居中
            For i As Integer = 0 To sheet.Rows.count -1
                Dim Hjs() As String = {"全区合计","分数线"}
                For Each Hj As String In Hjs
                    If sheet(i,0).Text.EndsWith(Hj) Then '如果指定列(第1列)中含Hj字符存在(列位置)
                        For n As Integer = 0 To sheet.Cols.count -1
                            sheet(i,n).Style = Style
                        Next
                    End If
                Next
            Next
            Style.BorderTop = XLS.LineStyleEnum.Thin
            Style.BorderBottom = XLS.LineStyleEnum.Thin
            Style.BorderLeft = XLS.LineStyleEnum.Thin
            Style.BorderRight = XLS.LineStyleEnum.Thin
            Style.BorderColorTop = Color.Black
            Style.BorderColorBottom = Color.Black
            Style.BorderColorLeft = Color.Black
            Style.BorderColorRight = Color.Black 
            Book.Save(dlg.FileName) '保存文件
        End If
    Next
    e.Form.Controls("Label1").Text = "目标统计表已导出并删除!"
End If
只是单位 = {"全区合计","分数线"}的行单元格加了网格线

图片点击可在新窗口打开查看此主题相关图片如下:网格线12.png
图片点击可在新窗口打开查看
要想全部加风格线如何修改代码?请指教。谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:更改后.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2021/3/29 17:07:52编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/3/30 16:55:00 [显示全部帖子]

去掉这些
 Dim Hjs() As String = {"全区合计","分数线"}
                For Each Hj As String In Hjs
                    If sheet(i,0).Text.EndsWith(Hj) Then '如果指定列(第1列)中含Hj字符存在(列位置)
整表的边框是加起了,但所有数据都变红加粗了。
如何修改代码?请指教。谢谢!


[此贴子已经被作者于2021/3/30 16:57:07编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/3/30 18:22:00 [显示全部帖子]

还是不得行。以变成这种了:

图片点击可在新窗口打开查看此主题相关图片如下:321.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/3/30 20:22:00 [显示全部帖子]

是的。得行了。
Dim book As new XLS.Book(dlg.FileName) '保存为Excel文件
Dim sheet As XLS.Sheet = book.Sheets(value & nj & "级目标") '保存为Excel文件中的一个工作表
Dim Style As Xls.Style = book.NewStyle '新建一个样式
Style.AlignHorz = XLS.AlignHorzEnum.Center '居中
Style.AlignVert = XLS.AlignVertEnum.Center '居中
Style.BorderTop = XLS.LineStyleEnum.Thin
Style.BorderBottom = XLS.LineStyleEnum.Thin
Style.BorderLeft = XLS.LineStyleEnum.Thin
Style.BorderRight = XLS.LineStyleEnum.Thin
Style.BorderColorTop = Color.Black
Style.BorderColorBottom = Color.Black
Style.BorderColorLeft = Color.Black
Style.BorderColorRight = Color.Black
For i As Integer = 0 To sheet.Rows.count -1
    For n As Integer = 0 To sheet.Cols.count -1
        sheet(i,n).Style = Style
    Next
Next
Style  = book.NewStyle
Style.ForeColor = Color.Red '样式的字体颜色设为红色
Style.Font = new font("宋体",9,FontStyle.Bold) '宋体,9号,红色,加粗
Style.AlignHorz = XLS.AlignHorzEnum.Center '居中
Style.AlignVert = XLS.AlignVertEnum.Center '居中
Style.BorderTop = XLS.LineStyleEnum.Thin
Style.BorderBottom = XLS.LineStyleEnum.Thin
Style.BorderLeft = XLS.LineStyleEnum.Thin
Style.BorderRight = XLS.LineStyleEnum.Thin
Style.BorderColorTop = Color.Black
Style.BorderColorBottom = Color.Black
Style.BorderColorLeft = Color.Black
Style.BorderColorRight = Color.Black
For i As Integer = 0 To sheet.Rows.count -1
    Dim Hjs() As String = {"全区合计","分数线"}
    For Each Hj As String In Hjs
        If sheet(i,0).Text.EndsWith(Hj) Then '如果指定列(第1列)中含Hj字符存在(列位置)
            For n As Integer = 0 To sheet.Cols.count -1
                sheet(i,n).Style = Style
            Next
        End If
    Next
Next
Book.Save(dlg.FileName) '保存文件

图片点击可在新窗口打开查看此主题相关图片如下:结果.png
图片点击可在新窗口打开查看
谢谢!
[此贴子已经被作者于2021/3/30 20:23:13编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/5/8 10:34:00 [显示全部帖子]

请教:导出表后表头不能自动换行,如何处理?请指教。谢谢!
红色部分:

图片点击可在新窗口打开查看此主题相关图片如下:表头.png
图片点击可在新窗口打开查看
另一表:

图片点击可在新窗口打开查看此主题相关图片如下:表头1.png
图片点击可在新窗口打开查看
想要的结果:

图片点击可在新窗口打开查看此主题相关图片如下:表头2.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/5/8 10:37:44编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2021/5/8 16:34:00 [显示全部帖子]

已经解决。谢谢!
在设置网格线时加一个自动换行代码就行。
Style.WordWrap = XLS.LineStyleEnum.Thin '单元格内容自动换行


 回到顶部