vb.net中滚动条一直显示没有数据时也显示_Excel中内容太多时,如何折叠行和列方便查看?...

作者:音子,微信公众号:自在不思量,转载请注明出处。


当工作表中右侧滚动条越来越短,我发现我真的很难滚到我想到的位置了。起码想要一步到位,就很难。慢慢滚吧,半天也滚不到,快点滚吧,一不小心就滚过了。

31800a14cceb54c98481c2a4cfe42475.gif


所以,还是别滚了。
试试这个方法吧。

26b776d75f3ca2bea35b488cd1e7ca67.gif

效果图 ↑
看起来还挺高大尚的吧~
但实现起来是很简单的。【组合】功能

这个功能位于【数据】菜单栏下【分级显示】选项卡中:

3dacb7c4d61cdb7b1ceb6e074e2d123b.png

以效果图中学生名单为例,建立3层分级的步骤:1. 修改默认设置
点击【分级显示】选项卡右下角图标,打开分级显示的高级选项设置窗口:

d4f181ae8c320d2e12ca8769157d4e36.png

9065640489f0821bfb873defbaa228ec.png

取消【明细数据的下方】、【明细数据的右侧】的默认勾选状态。
注:没有这一步也可以,但默认状态下,折叠标志将出现在一组数据的下方和右侧,不太符合我的使用习惯,因人而异吧。2. 建立第一层级
用鼠标选中从第3行开始的所有数据行,点击【组合】。
这里插播一个快捷键 Ctrl+Shift+↓ 的使用:
当工作表数据行数过多时,用鼠标拖拉可能要很久,那么这时可以先选中我们要选择区域的第一行,按下快捷键 Ctrl+Shift+↓ ,即可自动选至最后一行数据。(数据行中有空单元格时会影响该快捷键的使用,因此这里把空单元格中均补了“ - ”)

8f2c325a12be04e194ae70a9db848d59.gif

3. 建立第二层级
折叠理科名单时,选中第4~17行,点击【组合】,文科同理。

03f84bd1dd8dca1dfa2206fa42ee9694.png

4. 建立第三层级
折叠理科-高二年级时,选中第5~10行,点击【组合】,其他同理。

96bc4612b1e7a560688689c6f6b2a595.png

3层分级完成~
对于列的组合也是同样的操作,不再赘述。
----------------------------------------
【分级显示】选项卡中还有一个【分类汇总】功能,它要怎么用呢?
----------------------------------------

【分类汇总】功能

简言之,这个功能就是在组合的基础上加了统计。
例如,下图成绩单中,我要按照班级分组,并计算所有班级每个科目的平均分。

2d4b81540e67fbe467eac148aa26f8d1.png

那么只需将数据全部选中后点击【分类汇总】,弹出设置窗口:

39f5b1de53f8b0054b5aa6ceeeb011ee.png

因为想要按照班级汇总,所以将【分类字段】选为班级;要计算班级平均分而不是总分,所以将【汇总方式】改为平均值;要计算所有科目平均分,所以将语文、数据、英语全部勾选。
另外,我这里勾选了【汇总结果显示在数据下方】,纯属个人习惯,视情况勾选即可。
操作完毕后的效果是这样的:

114dac8aac58c0e3ca269dc8beaf1ce9.gif

本文对应的Excel练习文件分享地址
链接:https://pan.baidu.com/s/16JR2SUWiEowN_beqh-uzUw
提取码:
krxv
祝愿看完我这篇文章的可爱的人们无论学什么都能轻松举一反三,融会贯通呦。
----------------- End -----------------

f12a26f2c112e17fb5fab1fbcebdbbd9.png
如果你的 DataGridView 有太多的数据,导出到 Excel 会导致同一行显示两条数据。你需要在导出数据分成多个工作表。 以下是示例代码,可以将 DataGridView 数据分成多个工作表,每个工作表最多显示2000个数据行: ``` Private Sub ExportToExcel(ByVal dgv As DataGridView) Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value Dim i As Integer Dim j As Integer Dim iRowCount As Integer Dim iColCount As Integer Dim iSheetCount As Integer Dim iStartRow As Integer Dim iEndRow As Integer xlApp = New Excel.Application xlWorkBook = xlApp.Workbooks.Add(misValue) iRowCount = dgv.RowCount iColCount = dgv.ColumnCount iSheetCount = Math.Ceiling(iRowCount / 2000) For k As Integer = 1 To iSheetCount xlWorkSheet = DirectCast(xlWorkBook.Sheets.Add(After:=xlWorkBook.Sheets(xlWorkBook.Sheets.Count), Count:=1, Type:=xlWorkSheetType), Excel.Worksheet) xlWorkSheet.Name = "Sheet" & k.ToString() iStartRow = (k - 1) * 2000 + 1 iEndRow = k * 2000 If iEndRow > iRowCount Then iEndRow = iRowCount End If '写入表头 For j = 0 To iColCount - 1 xlWorkSheet.Cells(1, j + 1) = dgv.Columns(j).HeaderText Next '写入数据 For i = iStartRow To iEndRow For j = 0 To iColCount - 1 xlWorkSheet.Cells(i - iStartRow + 2, j + 1) = dgv(j, i - 1).Value.ToString() Next Next '格式化单元格 xlWorkSheet.Rows("1:1").Font.Bold = True xlWorkSheet.Columns.AutoFit() Next xlApp.Visible = True ReleaseObject(xlWorkSheet) ReleaseObject(xlWorkBook) ReleaseObject(xlApp) End Sub '释放 COM 对象 Private Sub ReleaseObject(ByVal obj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) obj = Nothing Catch ex As Exception obj = Nothing Finally GC.Collect() End Try End Sub ``` 在上面的代码,我们将 DataGridView 分成多个工作表,并按顺序命名为 Sheet1、Sheet2、Sheet3 等等。每个工作表最多显示2000个数据行。你可以根据需要更改此限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值