報表工具能實現怎麼的匯出效果?

bubblegum發表於2020-07-07

用報表工具開發,核心功能是把各種資料來源的資料以表格或圖表的形式線上上網頁端呈現出來。但是很多場景都是線上和線下結合,既要方便線上在系統中檢視到報表,同時還得能和傳統的線下業務無縫貼合,比如把結果匯出到檔案來流轉、電子歸檔呀之類的,這時就需要報表工具具備強有力的所見即所得的匯出本領。

當前,對報表工具來說,支援匯出基本算是標配功能,除了開源報表工具在支援的檔案型別上有限制外,對於商業報表工具來說,常用的檔案型別,幾乎沒什麼區別,比如都支援匯出 word、excel、pdf、txt 等。

至於使用的技術細節,這裡就不做詳細討論了,像市面上最多的用 java 開發的報表工具,基本都是藉助第三方開源的工具包,如 poi 匯出 excel、itext 匯出 pdf 等。

需要強調的是,雖然商業報表工具一般都能匯出希望的條件,但效果可能差出千萬裡,不能簡單地聽廠商宣傳說能與不能,還要看好與不好。報表工具模型有傳統條帶式與新型網格式兩種,前者在設計報表的時候就存在位置擺放精度不準,邊框間重合、對齊等難搞的問題,結果會導致匯出的檔案出現失真的情況,或者搞出一大堆碎格子,反正都不是想要的效果;而後者才能充分體現表格的規律性,匯出時能保證無失真。

imagepng

除了基本匯出功能外,還會有些個性化需求,比如報表不需要展現,希望直接批次匯出多個報表、多個報表匯出到一個 excel 檔案等。大多數國產老廠商也都提供了豐富的 api,例子一搜一堆,可輕鬆擴充套件匯出能力。比如下面示例,幾行程式碼解決批次導一個 excel 檔案。

imagepng

儘管新型網格式設計器對於基本的匯出效果都做的挺好了,各產品間也幾乎無差異,但對於一些真正特殊格式或要求的報表,也不是誰都能搞好的。

比如,word 報告式的報表

imagepng
圖一

這類報告用報表工具做的話都得是硬畫(如富文字),好處在於可以讓資料動態變化,圖表設計更加靈活,不會因為資料不同,還要重複修改檔案。但是有很大的缺點,比如頁面展現儘管看著有標題格式等表現,但是匯出 word 會發現實際頁面上只是標題效果,word 內是正文了,還包括一些換行、排版,做起來麻煩,匯出後的效果也無法完全達到預期效果。

對於這種需求,其實還有更好的解決方案,比如我們可以用報表工具結合一些 api 來搞,像一些固定內容,如標題了、固定描述性的文字了就放在 word 檔案內做好,在需要放入表格或圖表的位置插入個書籤。

imagepng

透過報表工具提供的 api 把計算後的報表結果插入到對應的書籤位置就可以了。

這麼做,避免了硬排版(可以更好佈局),方便調整樣式,提高報告式報表開發效率的同時,匯出的 word 也更符合報告的需求(圖一)。詳細方案可參考

再如,產品中可能用到了第三方的展現控制元件,像開源的 echarts 統計圖,圖形豐富、展現酷炫,常被整合到報表中使用,但有個麻煩的事兒是沒法匯出。其中的原因是,報表匯出是後臺程式實現,而 echarts 需要從瀏覽器(前端)中擷取圖形才能匯出,如果報表一頁呈現,這個還好處理,一旦報表分了多頁,echarts 圖形也就可能分佈到多頁內了,而我們是無法從瀏覽器擷取到當前頁未展現的 echarts 圖的,所以這個就要考察報表工具的功能完善度,方案實際比較清晰,把所有的 echarts 圖形拿到,交給後臺放到報表對應的位置就行,關鍵是看報表工具是不是已經解決了。想了解報表工具解決匯出 echarts 方案細節的,推薦 學習瞭解下。

從上面的例子可以瞭解到,儘管宣傳上每個報表工具的匯出功能上還都挺全面的,基本的匯出也支援。但具體到細節及擴充套件能力,可比較的功夫還是很多的。那我們在選產品的時候,匯出基本效果就夠用了?還是有些特殊的表樣、需要特別的匯出效果、匯出功能擴充套件?那就要根據需求,花點時間扣扣細節,比比細節了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2701488/,如需轉載,請註明出處,否則將追究法律責任。

相關文章