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+鼠標左鍵的點擊事件來實現,下次進行記錄分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM