最佳Excel匯入實踐(三)

來源:互聯網
上載者:User

相關連結
最佳Excel匯入實踐(一)
最佳Excel匯入實踐(二)
最佳Excel匯入實踐(三)
最佳Excel匯入實踐(四)
最佳Excel匯入實踐(五)

  為了讓系統能夠識別待引入的Excel,使用者提供的Excel必須滿足一定格式上的要求。通常我們的做法是提供Excel模板讓使用者下載,然後使用者往其中填入資料再提交給系統執行匯入操作。本篇將主要介紹匯入模板的產生。

  上篇講到的匯入規則是此方案的核心,匯入模板也將根據此規則動態產生。正如Excel匯入最佳實務(一)中已經提到的,本方案中的Excel模板也將通過NPOI 產生。有關NPOI的協助資訊請見:http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html。裡面記錄了所有產生此模板Excel所需要的知識。

  其實模板的產生主要就是寫Excel表頭,可用如下遍曆方式實現:

HSSFSheet sht=wb.CreateSheet("銷售訂單");
HSSFRow row=sht.CreateRow(0);
Column col;
for(int i=0;i<regulation.Columns.Count;i++){
    col=regulation.Columns[i];
    row.CreateCell(i).SetCellValue(col.ColumnName);
}

  當然,上面只實現了模板的最基本的功能--完成了Excel表實的定義。若想讓模板更人性化、可用性更好,還可以加入資料有效性驗證、表頭和表體用顏色區分、需要描述的地方加上批註等。這些附加操作都可以在上面的NPOI的協助找到,這裡就不再重述。最終產生的模板Excel大致如下:

  其中的下拉項是根據規則類中Column對象的RefField,RefTable,RefConvertField和RefFilter屬性執行類似如下SQL語句得來:

SELECT RefConvertField FROM RefTable WHERE RefFilter

  這樣使用者體驗明顯好了很多,而且下拉項是隨系統中的資料而變化的,做到了模板的動態化,用Excel匯入最佳實務(一)介紹的其它方法是很難實現的。再次為NPOI做一下廣告:目前.net環境下最好的讀寫Excel組件!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.