劉仕華
摘要: 如今,Excel表格的操作已成為所有辦公人員必須掌握的技能,特別是在高校日常辦公中,高校辦公人員需要頻繁的對Excel表格中數(shù)據(jù)進(jìn)行分組計數(shù)。普通的Excel計數(shù)方法有著工作量大、操作復(fù)雜、耗時多、易出錯、效率低等弊端。采用C#編程語言,設(shè)計和實現(xiàn)了Excel分組計數(shù)系統(tǒng),可減少高校辦公人員對Excel表格進(jìn)行分組計數(shù)的工作量,提高工作效率。
關(guān)鍵詞: 高校; C#; Excel; 分組計數(shù)
中圖分類號:TP311? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2021)02-52-03
Abstract: Nowadays, the operation of Excel has become a essential skill that all office workers must master, especially in the daily work in office of colleges and universities, the office staff need to count the data in Excel frequently. The common Excel group counting methods have many disadvantages, such as heavy workload, complex, time-consuming, error prone and low efficiency. In order to reduce the workload of office staff in colleges and universities on Excel group counting, and improve the work efficiency, an Excel group counting system is designed and implemented by C# programming.
Key words: colleges and universities; C#; Excel; group counting
0 引言
隨著辦公自動化的飛速發(fā)展,所有人員的日常辦公已離不開Excel表格操作,特別是在高校日常辦公中,需要頻繁的對Excel表格進(jìn)行分組計數(shù),傳統(tǒng)的Excel表格分組計數(shù)方法存在著工作量大、效率低、易出錯等弊端。C#作為面向?qū)ο箝_發(fā)的基礎(chǔ)言語,具有較強的開發(fā)操作性[2],能夠大幅度減少軟件開發(fā)的周期。為了減少高校管理部門辦公人員的工作量,提高辦事效率[1],簡化對Excel表格分組計數(shù)的復(fù)雜操作,開發(fā)Excel表格分組計數(shù)系統(tǒng)具有重大意義。
本文以高校招生錄取后的數(shù)據(jù)為例,在高校新生錄取結(jié)束后,需要對錄取新生按照院系、錄取專業(yè)、性別等進(jìn)行分組計數(shù),統(tǒng)計的數(shù)據(jù)需要實時、準(zhǔn)確的用于下一步的宿舍安排、學(xué)生管理等工作。
1 傳統(tǒng)的Excel分組計數(shù)
以如圖1所列數(shù)據(jù)作為原始數(shù)據(jù),以如圖2所列數(shù)據(jù)作為最終的分組計數(shù)進(jìn)行介紹,要想得到圖2所示的統(tǒng)計數(shù)據(jù),傳統(tǒng)的Excel分組計數(shù)方法大致包括數(shù)據(jù)篩選和數(shù)據(jù)透視表等。
1.1 數(shù)據(jù)篩選
大部分辦公人員在進(jìn)行分組計數(shù)的時候第一時間都會想到數(shù)據(jù)篩選方法,該方法是Excel計數(shù)的基本方法,較為簡單,是大部分辦公人員基本都會使用的計數(shù)方法,但是該方法僅適用于需要統(tǒng)計的列數(shù)較少的情況,如果數(shù)據(jù)量大,工作量將會特別大,且容易漏統(tǒng)計。
數(shù)據(jù)篩選分組計數(shù)的流程如下:①創(chuàng)建一個分組計數(shù)匯總的Excel;②在Excel數(shù)據(jù)表中篩選錄取學(xué)院;③篩選錄取專業(yè);④篩選性別;⑤將篩選數(shù)據(jù)列的值和統(tǒng)計數(shù)據(jù)手工填充到分組計數(shù)匯總Excel表格中。以上第二至第五項流程循環(huán)操作,直到所有錄取學(xué)院、錄取專業(yè)、性別都篩選完,整個分組計數(shù)工作才算完成。
1.2 數(shù)據(jù)透視表
數(shù)據(jù)透視表分組計數(shù)的流程如下:①使用數(shù)據(jù)透視表功能并選擇需要分組計數(shù)的數(shù)據(jù)區(qū)域;②分別按順序選擇需要分組的列名到“行標(biāo)簽”區(qū)域,如錄取學(xué)院、錄取專業(yè)、性別等;③選擇需要計數(shù)的列名到“數(shù)值”區(qū)域并設(shè)置計算類型為“計數(shù)”;④將統(tǒng)計數(shù)據(jù)復(fù)制值到新的Excel工作表中;⑤手工填充和刪除多余文字。
雖然數(shù)據(jù)透視表分組計數(shù)方法比數(shù)據(jù)篩選方法簡單、快捷,但是通過數(shù)據(jù)透視表方法得到的分組計數(shù)數(shù)據(jù)不能直接使用,需要再次進(jìn)行手工填充和刪除相應(yīng)多余文字才能得到最終的結(jié)果數(shù)據(jù),如果需要分組的列太多,手工填充和刪除時易錯誤且工作量大。
以上兩種傳統(tǒng)的Excel分組計數(shù)方法僅適用于需要分組計數(shù)的列和數(shù)據(jù)量都較少的情況,如果需要分組計數(shù)的列或數(shù)據(jù)量較多,分組計數(shù)會變得工作量大、耗時多、效率低且易出錯。
2 系統(tǒng)設(shè)計與實現(xiàn)
2.1 系統(tǒng)流程設(shè)計
Excel分組計數(shù)系統(tǒng)流程如圖3所示:①導(dǎo)入需要分組計數(shù)的Excel表格;②選擇需要分組計數(shù)的工作表;③選擇需要分組計數(shù)的數(shù)據(jù)列(如錄取學(xué)院、錄取專業(yè)、性別);④分組計數(shù);⑤導(dǎo)出數(shù)據(jù)。
2.2 系統(tǒng)實現(xiàn)
Excel分組計數(shù)系統(tǒng)主要用于將Excel表格中的數(shù)據(jù)按照指定多列進(jìn)行分組計數(shù),Excel分組計數(shù)系統(tǒng)的界面如圖4所示。
2.2.1 讀取Excel表格
點擊“瀏覽”按鈕,選擇需要進(jìn)行分組計數(shù)的Excel表格,系統(tǒng)將動態(tài)的把所選Excel表格中所有的工作表顯示到下拉框中,可根據(jù)實際情況選擇相應(yīng)的Excel工作表,系統(tǒng)將所選工作表的數(shù)據(jù)顯示到一個DataGridView表格中。
2.2.2 Excel分組計數(shù)
點擊“增加計數(shù)列”按鈕,可以根據(jù)實際情況動態(tài)選擇需要分組計數(shù)的列名,然后點擊“計數(shù)”按鈕,系統(tǒng)將按照所選的列名進(jìn)行分組計數(shù),計數(shù)后的所有分組統(tǒng)計數(shù)據(jù)將會顯示到一個DataGridView表格中,同時,可以選擇分組計數(shù)結(jié)果表中的相應(yīng)數(shù)據(jù)行,然后點擊“查看數(shù)據(jù)”可反向查看所對應(yīng)的原始數(shù)據(jù)。
Excel分組計數(shù)功能的核心代碼如下:
//根據(jù)動態(tài)選擇所有的分組列循環(huán)組合SQL語句
strCom_group="select";
for (int h=0; h
{? strCom_group+=column[h]+",";
}
strCom_group+="count(*) as 計數(shù) FROM
["+cbx_FirstFile.Text+"$]"+" group by ";
for (int h=0; h
{? strCom_group+=column[h] + ",";
}
strCom_group=strCom_group.Substring(0,
strCom_group.LastIndexOf(','))+
"order by count(*) desc";
//執(zhí)行SQL語句
myConn_first.Open();
myCommand_first=new OleDbDataAdapter
(strCom_group, myConn_first);
myCommand_first.Fill(ds_group, "table1");
dt_group=ds_group.Tables[0];
//將分組計數(shù)結(jié)果放到DataGridView表中顯示
dataGridView1.DataSource=ds_group.Tables[0];
2.2.3 導(dǎo)出Excel表格
點擊“導(dǎo)出數(shù)據(jù)”按鈕,選擇需要存放導(dǎo)出文件的路徑,輸入需要導(dǎo)出的分組計數(shù)Excel文件名,系統(tǒng)會將分組計數(shù)的數(shù)據(jù)導(dǎo)出成相應(yīng)的Excel表格。其中,系統(tǒng)的導(dǎo)出Excel功能采用了NPOI來實現(xiàn),NPOI是POI(POI是一個開源的Java讀寫Excel、Word等微軟OLE2組件文檔的項目)項目的.Net版本[4]。。
3 結(jié)束語
本文基于C#編程語言,設(shè)計和實現(xiàn)了Excel表格的分組計數(shù)系統(tǒng),大幅度減少了高校管理部門對Excel表格進(jìn)行分組計數(shù)的工作量,提高了辦公人員的工作效率,為高校的各項工作提供了較強的技術(shù)支持。
參考文獻(xiàn)(References):
[1] 王菊.Excel電子表格在招生錄取數(shù)據(jù)處理方面的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2020.38(06):58-59
[2] 陳小龍,陳綺璟.基于C#.NET實現(xiàn)Excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫技術(shù)[J].計算機(jī)與網(wǎng)絡(luò),2019.45(23):46-47
[3] 張茹茵.Excel在函數(shù)教學(xué)中的應(yīng)用[J].電腦編程技巧與維護(hù),2019.12:106-108
[4] 蔡小艷,盧莉娜,鄭炎,朱成文.基于NPOI組件生成Excel報表的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2016.12(1):64-65
[5] 蔡小艷,李龍騰,葛玉,鄭炎.基于C#的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出研究與實現(xiàn)[J].智能計算機(jī)與應(yīng)用,2014.4(5):83-85
[6] 郭文夷,姜存理.C#.NET框架高級編程技術(shù)案例教程[M].清華大學(xué)出版社,2014.