平常工做中,涉及到數據的表格、計算、圖表和分析,你們首選的必定是Excel。mysql
但我也看到很多知友困惑於Excel的深刻學習難度,雞肋的大數據處理效率。web
好比某同事爲處理七八個維度,近萬條數據奔潰不已;又有人幾十萬行的數據把電腦頻頻跑崩;再者,隨着多任務線之間的交叉,彙總任務呈幾何級數增長……sql
倒不是說Excel完成不了這類任務,若是是平常的表格記錄、數據計算、Excel確實沒法替代。但若是說作企業管理的業務報表、龐大而又複雜的數據分析、財務分析、預算編報,Excel就很不擅長了,由於其數據不統一,也沒有獨立的計算引擎,數據在各個Excel文件中獨立存在,數據合併不是常費事。數據庫
好比,最近我媳婦入職一家新公司,任某品牌的賣場數據專員。雖然以前也是這個行業的,可並不擅長數據報表的製做。設計模式
負責交接的同事是個畢業後就入職這家公司3年多的老員工,一直在作報表這塊的工做,交接的時候爲了更準確,我讓媳婦使用錄屏軟件,將他天天要作的事情都錄下來。安全
結果發現,這傢伙從早上開始,就開始問信息部要數據,而後用excel各類複製、粘貼、求和、求百分比、vlookup、再複製、粘貼、求和、求百分比、vlookup、刪除、調整……,幾個小時後,第一張報表誕生了……工具
看了錄像後的我,整我的都是崩潰的,這也太逆天了。好吧,這小夥子確實厲害,操做速度絕對是一流的,LOL裏至少也是鑽石V。性能
但我可捨不得媳婦天天這樣,並且對於計算機專業的我來講,只要有數據庫,這些重複性的工做都是分分鐘代碼/工具能解決的。學習
考慮到會有很多需求變化,讓媳婦改代碼是徹底不可行的,因而我就找現成的報表工具。比較了SPSS、SAS、cognos、水晶、foxtable、finereport以後,肯定了報表軟件finereport。從mysql建表、數據導入、製做日報、週報、月報,各類對比報表開始逐個攻破,終於在手速不低於黃金段位的我進過一個星期的努力後,所有完工了,通過和小夥子作出來的手工表進行校對,確認沒有問題後,安裝部署到了媳婦的辦公電腦上。大數據
幾天後,小夥子離職了,今後,媳婦上班只須要早上向個賣場的負責人收集數據,而後花幾分鐘導入數據庫,而後點點鼠標,生成各類報表,而後……先存起來,喝水、吃零食、水果,休息,上網。
因此,從效率上來說,專業的報表工具是能夠替代不少重複性的excel處理工做的,比方說FineReport,信息部門部署安裝後,能夠鏈接各業務系統數據,將常規的各業務報表,還有周報月報這些,開發成可自動抽取數據並展現的模板,作好一次,每次只要查詢便可。
由於這個工具大多爲信息部開發報表所用,可能不少人都不太瞭解!我儘可能以簡潔易懂的語言,從技術的角度講講這個報表工具,操做上爲什麼能省時省人力,而且有能夠替代數據透視表的驚豔可視化。
爲何這麼說?先來了解FineReport的製表原理
一、FineReport的製表原理
作報表首先得有數據,數據哪裏來?一個是直接鏈接業務系統或者數據庫的數據,還有能夠導入excel文件數據,連好數據後,開始製做模板,相似於作excel表格同樣,設計展示的樣式,計算的公式,最後在web端展現。
可是和excel不用,excel處理的是一個個數據,finereport製做模板時處理的對象是數據字段,模板中一個單元格放一個數據字段,web端展現時字段擴展。FineReport報表中單元格的擴展是有方向的,可縱向擴展,也可橫向擴展,也能夠不擴展。
單元格的擴展是針對某一個單元格,當報表主體中綁定了多個單元格時,單元格與單元格之間依靠父子格關係跟隨擴展。子格的數據會根據父格的數據進行過濾分組顯示,而且還會跟隨父格的擴展方向而擴展。
二、三大類報表設計方式,解決平常全部報表需求,而且一表複用。
1)普通模板設計,此者最經常使用。依靠着單元格的擴展與父子格的關係來實現模板效果,可進行參數查詢,填報報表,圖表設計等。好比交叉報表、行式報表、分組報表等等。
2)聚合報表設計,針對不規則大報表。適用於一張模板中顯示多個獨立模塊的報表,幾個報表塊彙總在一塊兒的複雜報表。
3)決策報表設計,就是表單,也是dashboard,也就是你們常見的各類圖表拼接在一塊兒的可視化數據報表。
經過拖拽圖表來製做,製做好的dashboard能夠本身適配屏幕的大小,多以也能夠作成手機端的報表,大屏可視化,下面有細講。
如下舉例一些常見的報表格式:
交叉表
行式報表
分組報表
自由報表
三、參數實現數據查詢和過濾
查詢報表是怎麼作呢?在FineReport中,經過設置參數綁定數據字段和過濾的控件(單選框、複選框等等),經過界面輸入查詢條件來控制報表顯示的內容及形式,然後導出打印。
不少人工做上會作週報月報季報等,有些全國性的公司有分公司、門店、辦事處。常常性的要作這些重複性很大的報表。那用FineReport就能夠集中將每一條數據明細上傳到數據庫中(填報功能,下面會講)。在作報表時,作將一些經常使用的維度「地區」、「時間」、「城市」等等做爲一個查詢的參數控件,相似Excel中的篩選,導出。基本上一個週報模板,就解決了一些人一年52張手工excel報表的工做量。
四、填報
數據採集是一個很重要的步驟。填報就是向數據庫中錄入數據,用來收集數據的,就比如你註冊網站時提交的郵箱、收集、用戶名、密碼,都會按照格式存放到數據庫中。
填報也須要模板,操做流程以下:
填報模板由控件組成,文本控件、數字控件、密碼控件、單複選框、網頁、文件等等。控件對應着數據字段。有了填報,就能夠收集數據,而且容許用戶實現對數據庫的增刪改。出於數據質量和數據安全的考慮,還能夠對填報進入的數據作校驗操做。
填報最大的用處是替代了excel收集數據,作好了模板,獎模板連接發送給相關人,填完數據審覈事後便可入庫,免得excel傳來傳去,並且是在web端填寫,很是方便。
酷炫的dashboard都須要經過FineReport的表單(決策報表)來設計展示。經過拖拽報表塊、圖表塊和各種控件初步設計界面。
不一樣於普通報表,普通報表是一個總體,沒法實現局部刷新。表單是由各個組件組成,能夠實現組件內刷新,即局部刷新。像動態大屏都是全局或者局部刷新的,因此須要用決策報表製做實現。
一、決策報表製做過程
新建表單:FineReport支持新建工做薄,即普通報表模板,還支持新建表單,兩種設計模式;
拖入組件:FineReport表單支持多種不一樣的組件類型,包括報表塊、tab塊、絕對畫布塊、參數、圖表和控件等等;
定義數據集:定義各個組件數據來源,圖表組件數據便可來源於數據集,也可來源於單元格;
設置表單樣式:即設置表單的顯示樣式。
二、數據可視化與交互
當下,數據分析盛行的年代,格子報表枯燥無味,可視化報表才能博得領導讚揚。以前不少網友問如何作可視化,其實,用FineReport自帶的H5圖表,就能夠作出很炫的可視化dashboard。此前提到FineReport良好的開放性,可以讓技術同事寫代碼開發,因此在製做時,也可接入Echarts等第三方控件來製做圖表。
三、實用而強大的數據地圖
finereport有很強大的地圖功能:基本地圖、GIS地圖、熱力地圖、大數據流向地圖等,基本一鍵生成。
GIS地圖基於GIS地圖層進行數據展現,支持自定義GIS主題風格,可以與數據表鑽取聯動。好比省級鑽取到市級、縣級、街道。
要說效率,最大的好處就是從數據庫中讀出數據自動產生報表,且一類報表作成一個固定樣式的模板,每次只要同步一下,自動生產週期性的報表,如日報、週報、月報、季報等。 每次按照條件查詢,Excel批量導出/打印,少了人力去一個一個用Excel統計彙總。
並且操做上,大多數功能FineReport都封裝成模塊了,包括寫SQL取數,彙總篩選過濾等,基本上都有對應的功能鍵。像著名的資產負債表,若是按照以往寫代碼或者寫複雜的SQL語句,就有點摧殘生命了,並且那天書般的SQL語句要是出點錯誰來查,若是數據來自多個源,那就完全沒法解脫了。
其次,在數據處理速度上,因爲性能一部分依靠數據庫,一部分依靠FineReport的行式報表引擎,相比於Excel的單機效率,幾十萬行的數據秒出。再者,企業數據庫有各類自帶或第三方的集羣方案,經過堆機器就能夠近似於無限的加大數據儲存能力。