• ReoGrid表格控件的使用(兼容Excel的免费开源表格控件)


      ReoGrid是一款免费并且开源的表格控件,兼容Excel。winform和WPF中都可以使用。

      在winform中使用该控件时,首先需要下载dll,在工具--NuGet包管理器--管理解决方案的NuGet程序包中,找到unvell.ReoGrid.dll进行下载(WPF版下载unvell.ReoGridWPF.dll)。

      

      下载完成之后,在工具箱中选择一个选项卡(例如报表)右键点击选择项,在弹出的窗体中点击.NET Framework组件,浏览,选择刚才下载的unvell.ReoGrid.dll,勾选上ReoGridControl点击确定,工具箱中就有ReoGridControl控件,拖动即可使用。

      

       在使用控件时,首先需要设置一下鼠标样式,该控件默认的鼠标样式与其他控件不一样,需要在Designer.cs文件中手动修改。

    this.rightReoGrid.CellsSelectionCursor = System.Windows.Forms.Cursors.Default;

      可以直接使用该控件进行表格展示,也可以根据业务需求进行重绘表格,这里主要记录重绘表格的方法。ReoGrid控件的说明文档:https://reogrid.net/document/

    //ReoGrid初始化
    rightReoGrid.Reset();//隐藏横向、纵向滚动条
    rightReoGrid.SetSettings(unvell.ReoGrid.WorkbookSettings.View_ShowScrolls, false);
    //隐藏横向滚动条
    //rightReoGrid.SetSettings(unvell.ReoGrid.WorkbookSettings.View_ShowHorScroll, false);
    //隐藏纵向滚动条
    //rightReoGrid.SetSettings(unvell.ReoGrid.WorkbookSettings.View_ShowVerScroll, false);
    //隐藏行头(A,B,C...)和列头(1,2,3...)
    rightReoGrid.CurrentWorksheet.SetSettings(unvell.ReoGrid.WorksheetSettings.View_ShowHeaders, false);

      Reset():Reset control and workbook (remove all worksheets and put one new) 重新设置控件,移除全部的工作页重新设置一个新的空白页

      效果如下图:

      

       按照上述代码中设置,表格变为了下图:

      

       看起来很low,也没有标题,接下来进行表格的重绘

      首先设置一下当前显示区域要展示的行和列,行数和列数根据各自的需求以及控件大小定,这里只是Demo示范

    //设置控件当前工作页总的行数
    var rightReoGridRowNum = 5;
    //设置控件工作页总的列数
    var rightReoGridColNum = 3;
    //获取控件当前工作页
    var rightWorkSheet = rightReoGrid.CurrentWorksheet;
    rightWorkSheet.Resize(rightReoGridRowNum, rightReoGridColNum);

      Resize(int row, int col):参数中row是要设置的行数,col是要设置的列数

      接下来设置列的宽度和行的高度

    //设定Name列列宽:50
    rightWorkSheet.SetColumnsWidth(0, 1, 50);
    //设定Address列列宽:30
    rightWorkSheet.SetColumnsWidth(1, 2, 30);
    //设定行高:16
    rightWorkSheet.SetRowsHeight(0, rightReoGridRowNum, 16);

      这里可以看做将整个表格分为了两大部分,Name列列宽为50,只有第0列这1列;Address列列宽为30,有第1和第2这2列。

      设置所有行的行高为16。

      SetColumnsWidth(int col, int count, ushort width):从第col列开始(下标从0开始,下标为col的列),count个列的列宽设置为width

      SetRowsHeight(int row, int count, ushort height):从第row行开始(下标从0开始,下标为row的行),count个行的行高设置为height

      接下来设置标题

    //设置标题行
    rightWorkSheet[0, 0] = "Name";
    rightWorkSheet[0, 1] = "Address1";
    rightWorkSheet[0, 2] = "Address2";

      表格中的数据如果有初始化需要展示的,可以进行填充

    //填充Name列
    for (int i = 1; i < rightReoGridRowNum; i++)
    {
        rightWorkSheet[i, 0] = "Hello" + i.ToString();
    }

      今天先记录到这里,这些就是ReoGrid控件的简单重绘,ReoGrid控件将鼠标点击拖动事件重写了,也就是不可以使用KeyDown和KeyUp事件来实现单元格的交换位置,目前我是使用了Ctrl+鼠标左键的点击事件来实现,下次进行记录分享。

  • 相关阅读:
    C# MVC解决跨站请求伪造(appscan)
    .net中关于Url传参问题
    二月项目完成小结
    sql 获取时间
    ajax提交form表单
    C# 视图遍历List数组
    C#遍历指定文件夹中的所有文件
    C#关于文件的操作
    .net 文件上传到服务器【转】
    Server.MapPath获取各级目录【转】
  • 原文地址:https://www.cnblogs.com/haley24/p/11845501.html
Copyright © 2020-2023  润新知