提起華為2012實驗室,你可能有點陌生。
但你一定還對前段時間中美貿易戰中的那封《海思總裁致員工的一封信》記憶猶新,就在那篇飽含深情的信中,我們知道了華為為確保公司大部分產品的戰略安全和連續供應,打造了無數「備胎」,一夜「轉正」從幕後走向前臺的海思半導體就是其中之一。而海思半導體就隸屬於華為2012實驗室下屬的二級部門,其他二級部門還包括:中央硬體工程學院、研發能力中心、中央軟體院等。
曾有戲言說這個實驗室是中國黑科技最多的地方,也代表著國內最頂級的科研水平。
而就是這麼一個本身科技水平頗高的實驗室,在2018年選擇了純前端表格控制項——葡萄城SpreadJS作為其部門內部表格數據管理的工具。
Why ?
01
小小的控制項大大的能量
一般來說,企業的IT部門負責整個企業業務應用程式的開發和部署。而每一個新的應用程式及系統的改動,會收到來自各個部門的各種要求,體量不大的IT部門有時候並不能很好很及時的滿足這些需求。
最終就會形成,IT部門難以跟上企業的業務,同時身上積壓著超出他們承受範圍的工作等惡性循環。而業務部門等不及就開始自己著手解決問題,他們購買未經批准的現成應用程式或者自行制定解決方案。往往也不符合企業的IT標準,並且經常在組織間或在無法協同的系統間產生衝突,無形中成為桎梏企業業務的重大問題。
在這種混亂中,一種減少重複工作,提升效率的工具——控制項,悄然興起。
創建控制項的最大意義在於封裝重複的工作,其次是可以擴充現有控制項的功能。
通俗的來說,控制項就如同帶有魔法的積木一樣,只需要拿起來堆堆疊疊,就可以做出一輛小車、幾棵植物,建起一座城池。但它又與普通堆積木不同,用積木堆的小汽車,再使用時,還需要重複勞動,而控制項則可以隨時隨地的初始化並可以通過接收參數改變自身屬性(顏色,尺寸等)來使用。
這些控制項能給項目開發和軟體交付帶來極大的便利。
而我們這次的故事的主角——SpreadJS,就是一個賦能開發者的純前端表格控制項。SpreadJS可以幫助開發人員專注於產品的業務邏輯,而不用機械式的通過編碼實現數據基本處理,如增刪改查等。
SpreadJS 是一款基於 HTML5 的純前端電子表格控制項,以「高速低耗、高度類似Excel、可無限擴展」為產品特色,提供移動跨平臺和瀏覽器支持,同時滿足 .NET、Java、App 等應用程式中的 WebExcel 組件開發、數據填報、在線文檔、圖表公式聯動、類 Excel UI 設計等業務場景,為用戶帶來親切的 Excel 使用體驗。
02
小小的控制項大大的能量
設計控制項是一項繁重的工作。比如它的特性之一兼容Excel就有很大的難度。
兼容 Excel,也可以稱之為微軟兼容性。
簡單來說就是,如果我們開發別的軟體,只要把功能實現就好,不論中間怎麼樣。比如播放視頻的軟體只要能播視頻就好,聽音樂的能聽音樂就好。但這個純前端的取代Excel的產品必須能夠正確讀取微軟的文檔。因為微軟Office的市場佔有率太高,如果不能兼容,意味著別人發來的文檔你打不開。想像一下,你以前的文檔,你同事、合作夥伴發來的文檔,你都打不開。如果他們要看你的文檔,得先裝對應的軟體。這就好像你在微信之外,用另一個全新的聊天工具,你要找朋友聊天,得先讓他們安裝一個新的聊天工具。
而要實現這樣的兼容性,就需要與原有設計(文件格式設計會隱含著原來作者對程序Model的設計)兼容,而微軟的Office並不是透明的。為了這個兼容,開發者需要在黑盒模式下各種大膽猜測小心調試,還要承擔「只要有問題就是你的問題」的巨大壓力。同時,背負上了帶著別人的歷史追趕別人進步的重任。
而在目前 Excel 已有的 480 多種函數公式中,SpreadJS已經支持 450 種以上。
具體講講幾個可以幫助開發人員在自己的系統中實現Excel的功能:
貼近Excel的應用
其實,上面所講的Excel兼容性就是SpreadJS最令筆者驚喜的特性之一。因為很多企業的歷史數據等都是留存在Excel格式的文件中的,這種能夠直接導入和導出Excel文件的特點極大的方便了企業對留存數據的存儲、整理和應用。
而且,作為控制項,企業完全可以用SpreadJS完美嵌入到自己的OA、帳務、生產等系統中使用,輕鬆的將數據導出為指定模板的Excel文件,進行復用。在筆者的試用中,不論從頁面還是功能都與Excel幾乎一致,要不是在Web端,筆者甚至以為自己在使用Excel。這將極大的減少企業員工的學習成本,極快上手。
而對於開發人員來說,在幫助企業進行業務應用設計時,通過 SpreadJS 提供的類似 Excel模板設計器,可以輕鬆的設計模板,節約應用程式開發所需的時間和精力。僅用不超過100行代碼,就可以實現Excel的全部功能,各行業人員均可通過 Excel 軟體製作表格,然後輕鬆導入 SpreadJS 中,提升模板復用性。
「公司的項目管理系統需要使用 SpreadJS 做一個通用的Excel 模板設計器,將此前自定製的組件通過 SpreadJS 進行集成,用拖拽的方式在SpreadJS 的表格編輯器界面進行展示和配置,以便生成一套能夠自行設計出數據填報、數據可視化甚至是 BI 的 Excel 模板。」
——天津卡達克數據有限公司
Form表單填報
填報就是提前設計好表單的樣式,在web端展示,分發給別人或者嵌入到別的軟體網頁,來收集數據,方便存入(數據)庫,就像註冊網站填入你的個人信息,發送到後臺,同步到資料庫。
SpreadJS內置桌面端和 Web 端的在線表格編輯器,支持用戶填報模塊。通過SpreadJS 內置的多種單元格類型,如按鈕、單複選、下拉列表、單元格內的公式引用、數據驗證等均能有效的完成表單相關功能。這種提前設計好報表樣式收集數據入庫,然後導出的方式,能省去很多工作量。
「SpreadJS 表單控制項主要應用於本項目中各類工資表格的展示、編輯和查詢,最後用於匯總生成各類報表並進行展示。我們的體會是,使用 SpreadJS 我們可以輕鬆設計模板,節約應用程式開發所需的時間和精力。無需編碼,財務、人事管理人員均可通過 Excel 軟體設計界面,設計計算公式,然後輕鬆導入設計器或 SpreadJS 中,就可實現模板重用。這大大減輕了工作強度,使得快速開發得以實現。SpreadJS 加載速度快,對內部管理系統無壓力。並且生成報表和網頁列印報表這些麻煩事兒,SpreadJS 都很好的解決了!」
——中國民用航空飛行學院
Gird表格數據處理
相比其他電子表格,SpreadJS 提供更全面的內置公式和自定義函數,可針對大數據和複雜計算進行優化,即可為複雜的公式增加計算能力,又不會過多地佔用系統資源。
而且,在進行數據展示時,不論是自動排序、篩選、行表頭、列表頭、匯總、邊框和單元格樣式等功能,還是進行分組、查找、聚合、公式等操作,SpreadJS均可滿足。
「SpreadJS 是一個基於 HTML5 技術的純 JavaScript 控制項。不但提供了更高的渲染性能和更流暢的界面操作,此外,SpreadJS通過一個高效的數據模型來快速操作數據,使得載入和操作超百萬行數據變得更為方便且快捷。」
——中國能建安徽電建二公司
數據可視化
在企業進行數據資產管理時,很常見的一個任務就是數據可視化,這樣才能獲得關於數據的形象化展示。而SpreadJS 除已完全兼容 Excel 的 92 種圖表外,還具備了更全面的商業智能分析(數據透視表)和更易於開發使用的自定義擴展能力,並實現了公式的完全自定義。同時已經實現了諸多類 Excel 的內置形狀,如線條、矩形、箭頭、流程圖,可以為前端界面添加更多的細節展現和可視化效果,並且這些內置的形狀都可以無縫的進行導入和導出。而即將在十月份推出的升級版新功能中,也新增了形狀(Shape)、富文本、二維碼以及多個新圖表類型。
「通過 SpreadJS『可嵌入用戶作業系統,開發在線Excel』的產品概念,以及葡萄城純前端數據處理技術在各領域應用中取得的核心成果,我們的技術專家無一不對葡萄城SpreadJS 純前端表格控制項新穎的設計理念和可靠的產品性能表示讚嘆。」
——北京神舟航天軟體技術有限公司
SpreadJS高度類似Excel的在線表格編輯器界面
對於代碼能力不強的開發者來說,僅通過簡單拖拽點擊,就可以利用SpreadJS方便的實現表格模板設計、數據填報、數據統計、數據管理、數據呈現等功能;而對於代碼能力較強的開發者來說,SpreadJS提供原始碼,方便其進行自由定製和任意擴展。
這也是SpreadJS獲得了眾多客戶認可的原因。
比如華為2012實驗室。
03
所以,選擇SpreadJS是意料之中
華為2012實驗室是華為技術有限公司的總研究組織,據稱,該實驗室的名字來自於任正非在觀看《2012》電影後的暢想,他認為未來信息爆炸會像數字洪水一樣,華為要想在未來生存發展就得構造自己的「諾亞方舟」。其研究領域涉及新一代通信、雲計算、音頻視頻分析、數據挖掘和機器學習等,重點面向未來5-10年中國工業網際網路的發展方向,不僅代表國內最頂級的研究水平,還為全球高新技術發展產生了源源不斷的推動力。
SpreadJS 在華為某項目中的應用截圖
說起華為和SpreadJS的緣起,也有那麼些故事性。
在華為一年一度的內部產品賽上,一位開發小哥用SpreadJS做了個應用,竟然獲得了很高名次的獎項,它也因此在內部的論壇和採購平臺上火了一把。接觸並嘗試SpreadJS的部門在使用一段時間後都開始自發安利這個控制項,慢慢越來越多的部門開始使用SpreadJS。
而SpreadJS當然不會讓他們失望。
首先,SpreadJS幫助他們實現了內部表格數據處理。
華為2012實驗室的實驗部門遍布全球各地,已經在歐洲、印度、美國、俄羅斯、加拿大、日本設立8個重要的海外研究所。隨著新研究所的建立和各個研究所間數據交流的程度越來越密集,建立一整套統一、安全、快捷的數據管理機制顯得格外重要。
很多部門此前重度依賴 Excel 作為前期調研、資料收集、交換,方案設計 + 審定的核心工具,積攢大量的 Excel 文件需要進行導入導出並現場列印,而用SpreadJS開發出的Web Excel模塊,可以完美兼容Excel文件,並無損導入導出,提升了Excel模塊的復用性和新老系統的遷移工作,同時藉助SpreadJS開發的模塊與Excel UI高度一致,用戶無需學習新系統,即可快速上手使用。
因此,SpreadJS真正無縫兼容Excel文檔且支持Excel格式導入導出的特徵,讓它很好地幫助華為2012實驗室進行日常維護管理數據。
其次,SpreadJS中大量的公式函數和自定義函數功能,滿足了他們的項目需求。
SpreadJS能滿足Excel公式的完美兼容,兼具強大的數據聚合能力和跨表格引用、自定義函數的能力。
「簡單的一百多行代碼配合 SpreadJS 的類 Excel 操作習慣,讓我們的用戶就像使用 Excel 一樣使用內部系統,也為我們系統開發完成後的用戶遷移工作節約了大量培訓時間,SpreadJS 優秀的性能讓我們高枕無憂。」華為2012實驗室的相關負責人坦言。
純前端表格控制項SpreadJS打破傳統代碼編寫方式,將開發回歸簡捷高效,快速實現用戶需求,解決企業個性化需求與標準化生產的矛盾,讓企業更專注於發展和創新,勢必將成為未來企業數位化進程中的重要開發工具之一。