1. 程式人生 > >JQuery Plugin-TableExport實現前端表格的匯出功能(已解決表格pdf匯出中文格式問題)

JQuery Plugin-TableExport實現前端表格的匯出功能(已解決表格pdf匯出中文格式問題)

前言

  • 最近在整一個前端的一個測試工具,使用Express+Nodejs實現後臺功能。為了能夠實現前端表格的匯出功能,各種嘗試發現tableExport是一個很不錯的外掛。因此最後選擇了hhurz的JQuery Plugin來實現表格的匯出功能。
  • 可以從下面的地址下載TableExport外掛;該外掛可以將Html的表格匯出成為 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG and PDF格式,支援的匯出格式還是挺多的,基本能滿足自己的需求。

  • 因為github上作者給出的外掛的使用描述已經很詳細了,我就不在這裡贅述很多重複的東西了(具體怎麼使用該外掛,還請麻煩移步tableExport的git上)。簡述:我們可以通過下載外掛,然後放到自己的工程路徑下,使用’script’標籤做路徑引用能夠很好實現Json、XML、CSV、TSV、TXT、SQL、Word、Excel格式的匯出。

  • 該外掛pdf格式的匯出有一些中文問題,現在已經解決,但是PNG格式的匯出測試在火狐瀏覽器中會顯示圖片不全的問題,在360瀏覽器中正常使用,而在微軟自帶瀏覽器中所有匯出功能都不能正常使用,其他瀏覽器沒有測試,看來該外掛的使用和瀏覽器的核心有很大關係。
  • 下面給出我使用過程中遇到的問題及一些嘗試解決的方法,同時會在最後附上純表格匯出的程式碼連結,以tableExport為例子做一個demo,希望達到這樣的目的:想要實現前端表格的匯出功能的小夥伴能夠在這個部落格得到需要的,因為自己在tableExport這個外掛上耗費了整整2天的時間,希望其他小夥伴使用的過程中能夠更快實現自己的需求。

遇到的問題及解決

  • 主要遇到的問題是pdf的中文問題。

    因為該外掛pdf格式的匯出使用了jspdf,而jspdf不支援中文的匯出,通過檢視tableTable.js關於pdf匯出程式碼,發現還可以使用pdfmake來實現pdf的匯出。而該外掛中並未包含pdfmake的js相關程式碼,因此首先下載了pdfmake並引用到工程中。pdfmake是純js,有很強大的排版功能。下面是pdfmake的git地址

  • pdfmake 的字型vfs_fonts.js不支援中文,可以通過自定義字型來實現中文的pdf匯出,下面是關於自定義pdfmake字型的方法:
  • 我在網上找到了現成的編譯好字型的pdfmake(下載耗費了我5個積分,還好資源很好用,耶!):

使用TableExport實現前端表格的pdf中文匯出

!!!我是乾貨!!!

  1. 首先將下載的tableExport目錄拷貝到工程的目錄下,並重命名“tableExport.jquery.plugin-master”為“tableExport”,同時將“pdfmake-master”目錄下的build目錄拷貝到“tableExport”目錄下,並重命名為“pdfMake”;
  2. 將已經生成的微軟雅黑的字型檔案”vfs_fonts.js”,替換pdfMake目錄中的“vfs_fonts.js”。
  3. 修改tableExport目錄下的tableExport.js檔案,將型別為pdf的判斷下的程式碼替換:
替換前:

var docDefinition = {
                pageOrientation: 'landscape',
                content: [
                    {
                        table: {
                            headerRows: $hrows.length,
                            widths: widths,
                            body: body
                        }
                    }
                ]
            };
替換後:

pdfMake.fonts = {
                Roboto: {
                    normal: 'Roboto-Regular.ttf',
                    bold: 'Roboto-Medium.ttf',
                    italics: 'Roboto-Italic.ttf',
                    bolditalics: 'Roboto-Italic.ttf'
                },
                微軟雅黑: {
                    normal: 'msyh.ttf',
                    bold: 'msyhbd.ttf',
                    italics: 'msyh.ttf',
                    bolditalics: 'msyhbd.ttf'
                }
            };
var docDefinition = {
                pageOrientation: 'landscape',
                content: [
                    {
                        table: {
                            headerRows: $hrows.length,
                            widths: widths,
                            body: body
                        }
                    }
                ],
                defaultStyle: {
                    font: '微軟雅黑'
                }
            };

4.最後將引用:tableExport.min.js修改成tableExport.js

<script type="text/javascript" src="./tableExport/tableExport.js"></script>

效果

這裡寫圖片描述

這裡寫圖片描述

總結

  • png格式的匯出在火狐瀏覽器顯示不全,360瀏覽器顯示正常。其他瀏覽器沒有測試
  • hhurz的tableExport.jquery.plugin外掛支援前端表格匯出格式多樣,非常好用。
  • 其他格式匯出的使用還請下載連結,這裡不再說明。
  • 最後非常感謝這些博主部落格對我的幫助:

測試程式碼(最後的乾貨)

相關推薦

JQuery Plugin-TableExport實現前端表格匯出功能(解決表格pdf匯出中文格式問題)

前言 最近在整一個前端的一個測試工具,使用Express+Nodejs實現後臺功能。為了能夠實現前端表格的匯出功能,各種嘗試發現tableExport是一個很不錯的外掛。因此最後選擇了hhurz的J

html中layui+jfinal模板實現前端搜索功能

scrip com search nta null info 寫到 ins console <input type="text" id="campus" class="layui-input" onkeyup="ck(this.value);" placehold

vue+elementUI元件table實現前端分頁功能

前端分頁和後端分頁就是請求的差異,前端分頁的話只請求一次,所以要在render table元件的時候控制下資料 :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"   //不

利用jQuery.print.js實現canvas的列印功能

需求 把在瀏覽器中的利用canvas做的圖實現列印功能 思路 先把canvas轉換成img 把生成的img利用jQuery外掛jquery.print.js實現圖片列印功能 資料連

Ajax+jQuery+bootstrap+Java實現非同步點贊功能,並限制點選次數

(下面截圖是自己專案的截圖) 當已經點贊後,滑鼠再經過時,就會顯示 "禁止的圖示"  (相應的class 會變化) cursor:not-allowed 在很多的網站上有很多不同的點贊,我不知道他們是怎麼實現的,下面我來分享一下我寫的點贊實現,共大家參考下, 這是我在一個專案抽取的程式碼

Oracle 對於.dmp檔案的匯入和匯出功能 問題解決

因為需要,匯入磁碟上的.dmp檔案到資料庫裡,但是直接在命令列裡 imp a/[email protected] file = 'D:\dmp\a.dmp' full = y是執行不成功的而且報錯。 IMP-00013: only a DBA can import

RDIFramework.NET ━ .NET快速資訊化系統開發框架 V3.2->新增模組管理介面匯出功能(可按條件匯出

匯出功能在很多應用場景中都需要,RDIFramework.NET V3.2版本在模組管理介面新增了匯出功能,方便管理員對所有配置的模組進行管理。 一、Web版模組管理匯出功能 Web版本的模組匯出功能如下圖所示:   單擊匯出按鈕,在彈出的“匯出Excel資料”視窗中,可以選擇要匯出的列,如下圖所

react-redux實現todolist增加刪除功能解決JavaScript事件繫結問題

react-redux實現todolist增加刪除功能,解決JavaScript事件繫結問題 1.建立TodoList元件 在react-redux中使用connect將元件和store做連線。mapStateToProps 會將state掛載到元件的props上,mapDispatch

Jquery datatable 匯出亂碼 解決

"sExtends": "csv", "sToolTip": "Export to csv", "sButtonClass": "btn btn-white btn-primary  btn-bold", "sButtonText": "<i class='fa fa

jQuery實現簡單前端搜索功能

量化 可靠性 可靠 標題 ava scrip 清空 sub 是否有效 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&

MVC實現匯出功能,並設定匯出Execl表格的樣式

效果圖   JS程式碼    功能匯出  function Export(i){         //標題          

前端利用 js-xlsx 實現 Excel 檔案匯入匯出功能示例

1.匯入功能實現 下載js-xlsx到dist複製出xlsx.full.min.js引入到頁面中 然後通過FileReader物件讀取檔案利用js-xlsx轉成json資料 程式碼實現(==>示例<==) <!DOCTYPE html> <html> <he

【隨記】JQuery實現表格的雙擊編輯功能(自動適應表格高度和寬度)

<html> <head> <!-- 設定JQuery的路徑 --> <script src="../jQuery/jquery-1.11.2.min.js"></script> <script type="

前端筆記】使用jquery實現簡單的投票功能

首先先明確下需求: 可以顯示是第幾輪投票 顯示每輪共有幾票,還剩幾票 如果這輪剩餘票數為0,留下票數最多的一個(如果有多個票數最高者,則都保留下來,進行下一輪投票,直至最後只有一位留下) 效果圖如下: 再次感嘆jquery比js原生程式碼簡短太多; 程式碼如下:

前端表格匯出功能

前端工作時,經常會遇到將介面的表格資料匯出的需求,在使用過程中,發現一份簡單但是很實用的程式碼://js程式碼/* * jQuery table2excel - v1.0.2 * jQuery plugin to export an .xls file in brow

使用jquery+ajax+php實現搜索框的功能

test .ajax 關鍵字 焦點 pwd show span 知識庫 document 搜索框的原理: 客戶端:輸入要搜索的關鍵字於文本框,然後文本框將關鍵字獲取,使用ajax發送請求到服務端,然後根據服務端返回來的信息顯示到一個div中 服務端:接收傳過來的數據,然後在

jQuery】利用jQuery實現“記住我”的功能

jquer sms sep jquery實現 .com script lis put bar 【1】先下載jQuery.cookie插件:使用幫助請參考鏈接(https://github.com/carhartl/jquery-cookie)。 【2】安裝插件:

html+css+jQuery+JavaScript實現tab自動切換功能

() conf charset 臨時 effect 保存 sheet http oat tab1.html內容 <!DOCTYPE html> <html> <head> <meta charset="U

mvc jQuery 點擊按鈕實現導出Excel功能 參數長短不限

clas spl mco ctrl 實現 fun hidden () log 1 var exportSubmit=function(url, obj){ 2 var form = $("<form>"); //定義一個form

使用PHP+MySql+Ajax+jQuery實現省市區三級聯動功能

b- 發生 sel substr 要求 java true 選中 .ajax 使用PHP+MySql+Ajax+jQuery實現省市區三級聯動功能 要求:寫一個省市區(或者年月日)的三級聯動,實現地區或時間的下拉選擇。 實現技術:php ajax 實現:省級下拉變化時市下拉