天天看點

word嵌入表格,完美解決報表

【背景概要】

    項目中,有很多地方涉及到需要列印各種表格,靜态的,動态的,都有。而之前利用銳浪報表實作了顯示表格的需求,但在進行條件篩選後,報表中的資料并不能顯示了。這個問題一直擱置了很久,一直得不到解決。

【問題解決】

    在放下報表問題實作其它需求期間,偶然發現,我們可以動态的将表格嵌入到word檔案中,利用word将各種表格顯示列印。這裡用到的就是aspose word控件,不但可以幫助我們實作在word中插入必要的參數,也可以幫助我們在word中插入必要的表格。

【項目環境】

    項目前台利用的mvc架構,easyui樣式,vs2012開發環境。

【實作步驟】

1.在本地建立一個word模闆,在項目中添加現有項,把制作好的word模闆添加到項目中。

    word模闆如下圖所示,

word嵌入表格,完美解決報表

    參數說明:模闆{}中的字段都是靈活的,是以在此寫成這樣作為參數,在項目中通過代碼動态加載。

2.前台頁面已經實作通過按條件搜尋,将查詢到的資料顯示在datagrid表格中,具體效果如下圖所示:  

word嵌入表格,完美解決報表

    3.查詢結果出來後,下面真正開始利用代碼實作将表格嵌入word模闆中。關鍵步驟如下:

第一,擷取招标檔案制作模闆:

     第二,通過前台頁面和背景方法,擷取各個參數:

     第三,将擷取到的參數值替換到模闆中:

     第四,嵌入表格的表頭:

     第五,将查詢到的資料動态嵌入word中:

     第六,設定儲存檔案的路徑和檔案名,最終傳回給視圖:

     4.以上各步是controller下的方法,最後通過js在點選按鈕後,調用該方法即可,js代碼如下:

     【效果展示】

     通過以上步驟,終于實作了一直擱置的報表問題。下面是從word中截取的報表資訊:

word嵌入表格,完美解決報表

    【程式設計總結】

    在實作這一功能的過程中,最複雜的是數組那部分的邏輯。另外,在巨人的肩膀上,也讓我見識到了list的強大。一個list不僅僅是一個list那麼簡單,我們可以通過自己的建立,實作對list的拼接,實作對list的重組,進而完美得到自己想要的那一行行記錄。積累,思考,應用,這都是自己在以後的學習需要特别值得注意的。