劉仕華
(滇西科技師范學院,智能與信息工程學院,云南,臨滄 677000)
Microsoft Office Excel是款非常有用的軟件,能夠為人們做很多事情[1],Excel是Office的重要組成,是保存統計數據的常用軟件格式之一[2]。隨著辦公自動化的普及,Excel軟件憑借其強大的數據處理功能,被廣泛應用于各行各業[3],特別在高校日常的辦公中,經常需要對多個Excel表格進行合并,傳統的Excel文件合并方法有著工作量大、耗時多、易出錯等弊端。故為了減少高校管理部門辦公人員的工作量,提高辦事效率[4],簡化Excel文件合并的復雜操作,開發批量Excel表格合并系統具有重要意義。C#作為面向對象開發的基礎語言,具有較強的開發操作性[5],能夠提高軟件開發的效率。
本文以高校管理部門收集的各院系填報的Excel數據合并為例,在日常工作中,高校管理部門需要頻繁的將各院系報送的Excel表格進行合并匯總,以便用于下一步工作。
以高校日常Excel表格數據合并為例,傳統手工方式的Excel表格合并流程如下:①創建一個新的Excel匯總表格;②打開相應院系報送的Excel表格;③復制相應院系報送的Excel表格數據到匯總表中;④已匯總數據格式處理;⑤保存匯總表。以上第二至第四項流程循環操作,直到所有院系報送的數據都已復制到匯總表中。傳統的Excel表格合并流程如圖1。

圖1 傳統的Excel表格合并流程圖
這種傳統的Excel表格合并方法僅適用于需要合并的Excel表格較少且需復制數據較少的情況下,如果需要合并的Excel表格較多且需匯總數據較多,工作量將變得相當大且耗時多、易出錯。
批量Excel表格合并系統的流程如圖2所示:①批量導入需要合并的Excel表格;②選擇需要合并的工作表;③Excel表格合并。其中,批量合并后的數據格式無需再次處理,由系統自動進行處理。

圖2 批量Excel表格合并系統流程圖
Excel表格合并系統主要用于將多個Excel表格進行合并,點擊“瀏覽”,找到需要批量合并的文件夾,使用“CTRL+A”全選或者使用“CTRL+鼠標左鍵”多選,然后可根據具體情況選擇相應Excel文件需要合并的相應工作表,最后點擊“開始合并表”,系統將對所選的多個Excel表格數據進行合并,合并后的所有數據將會顯示到一個DataGridView表格中,點擊“導出數據”,選擇并輸入導出的文件名,即可將合并的所有數據導出到Excel表格中。需要合并的Excel表格示例如圖3所示。Excel表格合并系統的界面如圖4所示。

圖3 需要合并的Excel表格示例

圖4 Excel表格合并系統界面
2.2.1 讀取Excel表格
點擊“瀏覽”按鈕,找到需要批量合并的Excel表格文件夾,使用“CTRL+A”全選或者使用“CTRL+鼠標左鍵”多選需要合并的Excel表格,系統將會自動循環讀取所選的Excel表格,并動態的將所選每個Excel表格所有的工作表顯示到下拉框中,然后可根據具體情況選擇相應Excel文件需要合并的相應工作表。
讀取Excel表格的核心代碼如下。
strCon =" Provider =Microsoft.Jet.OLEDB.4.0 ;Data Source =" + @inputFileName + ";Extended Properties=Excel 8.0";
string FileType =inputFileName.Substring(inputFileName.LastIndexOf("."));
if (FileType ==".xlsx")
{
strCon ="Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + @inputFileName + ";" + ";Extended Properties="Excel 12.0;HDR=YES;IMEX=1"";
}
myConn =new OleDbConnection(strCon);

myConn.Open();
myCommand =new OleDbDataAdapter(strCom,myConn);
ds =new DataSet();
myCommand.Fill(ds,"table1"+j);
dt[j] =ds.Tables[0]。
2.2.2 批量Excel表格合并
點擊“開始合并表”按鈕,系統將對所選的多個Excel表格數據進行循環合并,合并后的所有數據將會顯示到一個DataGridView表格中,以便查看。
批量Excel表格合并的核心代碼如下。
//存放合并數據
DataTable newDataTable =dt[0].Clone();
//循環合并數據
for (int i =0;i
{
newDataTable.Merge(dt[i]);
}
//去除空行數據
removeEmptyRow(newDataTable);
//顯示合并數據并添加序號
dataGridView1.DataSource =newDataTable;
for (int i =0;i { dataGridView1.Rows[i].HeaderCell.Value =(i + 1).ToString(); } 2.2.3 導出Excel表格 點擊“導出數據”按鈕,選擇導出文件的存放路徑,然后輸入導出的匯總Excel表格文件名,點擊確定后即可將合并的所有數據導出。本系統所使用的導出功能采用了NPOI,NPOI是POI(POI是一個開源的Java讀寫Excel、Word等微軟OLE2組件文檔的項目)項目的.Net版本[6],可以直接將DataGridView中的數據導出到Excel中。 本文應用C#編程語言,設計和實現了批量Excel表格合并系統,大幅度減少了高校管理部門合并多個Excel表格的工作量,提高了工作效率,為高校的各項管理工作提供了較強的技術支持。3 總結