bootstrap table和tableExport导出支持中文的Excel和pdf等表格
来源:互联网 发布:兴趣图谱源码 编辑:程序博客网 时间:2024/06/10 16:52
前言
- 由于最近项目有一个导出表格为pdf格式,所以就做了这个功能。由于项目的表格是基于bootstrap和bootstrap table实现的,相对于easyUI来说它的优点是更方便,更好兼容。
从代码可以发现bootstrap table本身是没有实现表格的导出的,需要扩展插件tableExport,扩展的tableExport在导出csv,txt,sql,json等格式的时候能很好的支持中文,不过需要导入相应js文件(本文会解决),但是对于pdf格式的就不支持中文了,如何解决是本文的中点。
前提
首先得下载几个插件:
jquery下载
bootstrap下载
bootstrap table下载
tableExport下载
注意
- 由于bootstrap和其扩展的插件都是基于jquery来实现的,所以在使用这些插件的时候必须先把jquery引入。
- 对于版本有要求,bootstrap对jquery的版本有依赖,在bootstrap的bower.json 文件中列出了 bootstrap 所支持的 jquery 版本,请对应下载jquery版本。
- 不能把单个的css、js文件提出来放在一个文件中因为有的文件有关联,提出来就导致某些功能用不了。
步骤 下载的文件整理:
- 新建文件bootstrap_above;
- 将下载的tableExport.jquery.plugin-master文件重命名为tableExport;
- 将重命名的tableExport和下载的bootstrap、bootstrap-table-develop、jquery-1.9.1文件放入bootstrap_above文件中。
- 修改文件,tableExport默认是使用jspdf来实现导出pdf的,但是jspdf不支持中文,所以我们改用pdfmake方式,但是必须自定义字体生成vfs_fonts.js,博主已经自定义好需要的请自己下载。将vfs_fonts.js文件替换掉bootstrap_above\tableExport\libs\pdfmake目录下的vfs_fonts.js文件。
- 将tableExport.js文件的代码
pdfmake: {enabled: false, // true: use pdfmake instead of jspdf and jspdf-autotable (experimental) docDefinition: {pageOrientation: 'portrait', // 'portrait' or 'landscape' defaultStyle: {font: 'Roboto' // default is 'Roboto', for arabic font set this option to 'Mirza' and include mirza_fonts.js } }, fonts: {} },
修改为
pdfmake: {enabled: true},
- 将tableExport.js文件的代码
var docDefinition = { content: [ { table: { headerRows: $hrows.length, widths: widths, body: body } }]}; $.extend(true, docDefinition, defaults.pdfmake.docDefinition); pdfMake.fonts = { Roboto: { normal: 'Roboto-Regular.ttf', bold: 'Roboto-Medium.ttf', italics: 'Roboto-Italic.ttf', bolditalics: 'Roboto-MediumItalic.ttf' } }; $.extend(true, pdfMake.fonts, defaults.pdfmake.fonts);
替换为
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' } }; $.extend(true, pdfMake.fonts, defaults.pdfmake.fonts); var docDefinition = { pageOrientation: 'landscape', content: [ { table: { headerRows: $hrows.length, widths: widths, body: body } } ], defaultStyle: { font: '微软雅黑' } }; $.extend(true, docDefinition, defaults.pdfmake.docDefinition);
至此前期工作就做好了,接下来就是使用了。
html代码(注意引用js的顺序,部分顺序不能改变)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <link rel="icon" href="img/favicon.ico"> <title>Bootstrap 模板</title> <!-- 描述:样式导入 --> <link rel="stylesheet" href="js/bootstrap_above/bootstrap/css/bootstrap.min.css" /> <link rel="stylesheet" href="js/bootstrap_above/bootstrap-table-develop/dist/bootstrap-table.css"/> <!-- 描述:js导入,注意顺序,jquery必须引入 bootstrap-table-zh-CN.js为表格汉化的文件 FileSaver.min.js等是关联引用文件 --> <script src="js/bootstrap_above/jquery-1.9.1/jquery.min.js"></script> <script src="js/bootstrap_above/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="js/bootstrap_above/bootstrap-table-develop/dist/bootstrap-table.js"></script> <script type="text/javascript" src="js/bootstrap_above/bootstrap-table-develop/dist/locale/bootstrap-table-zh-CN.js"></script> <script type="text/javascript" src="js/bootstrap_above/bootstrap-table-develop/dist/extensions/export/bootstrap-table-export.js"></script> <script src="js/bootstrap_above/tableExport/libs/pdfmake/pdfmake.min.js"></script> <script src="js/bootstrap_above/tableExport/libs/pdfmake/vfs_fonts.js"></script> <script type="text/javascript" src="js/bootstrap_above/tableExport/libs/FileSaver/FileSaver.min.js"></script> <script type="text/javascript" src="js/bootstrap_above/tableExport/libs/jsPDF/jspdf.min.js"></script> <script type="text/javascript" src="js/bootstrap_above/tableExport/libs/jsPDF-AutoTable/jspdf.plugin.autotable.js"></script> <script type="text/javascript" src="js/bootstrap_above/tableExport/tableExport.js"></script> <script src="js/table.js"></script> </head> <body> <table class="table-responsive" id="db_dependences"> </table> </body></html>
js块table.js代码
$(function () { $('#db_dependences').bootstrapTable({ method:'POST', dataType:'json', contentType: "application/x-www-form-urlencoded", cache: false, striped: true, //是否显示行间隔色 sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) showColumns:true, pagination:true, minimumCountColumns:2, pageNumber:1, //初始化加载第一页,默认第一页 pageSize: 20, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) uniqueId: "id", //每一行的唯一标识,一般为主键列 showExport: true, exportDataType: 'all', exportTypes:[ 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'], //导出文件类型 columns: [{ field: 'id', title: 'Item ID' }, { field: 'name', title: 'Item Name' }, { field: 'price', title: 'Item Price' }], data: [{ id: 1, name: '项目 1', price: '价格$1' }, { id: 2, name: '项目 2', price: '价格$2' }] });});
结果不多说有图才有真相
源码下载
下载链接:ExportPDF_ch
注:本文为原创,转载请注明出处。
阅读全文
2 2
- bootstrap table和tableExport导出支持中文的Excel和pdf等表格
- excel前端导出(bootstrap-table,tableExport)
- bootstrap-table 导出 excel,pdf,txt等
- 十七 bootstrap-table tableExport 导出xlsx格式表格
- TableExport pdf导出中文乱码
- JQuery Plugin-TableExport实现前端表格的导出功能(已解决表格pdf导出中文格式问题)
- JQuery Plugin-TableExport实现前端表格的导出功能(已解决表格pdf导出中文格式问题)
- tableExport.js对table进行导出excel
- html导出table支持(excel,png,word,pdf<pdf不太行,中文不支持>)
- tableExport - jquery生成Word,Excel,PDF等文档
- Bootstrap Table导出Excel
- bootstrap table 导出excel
- 解决tableexport导出到excel中有关中文乱码的问题
- javascript 将table数据导出到excel中(支持表格线的导出)
- jmesa 使用和导出中文excel,pdf数据处理
- Bootstrap-table 表格计算列的和----总计
- html table表格导出excel的方法
- 使用tableExport.js直接导出web页面上的table
- 欢迎使用CSDN-markdown编辑器
- session与cookie问题
- C++输入scanf()和输出printf()
- CodeForces Exposition && 单调队列
- 国家集训队论文分类整理
- bootstrap table和tableExport导出支持中文的Excel和pdf等表格
- /data/anr/traces.txt下获取ANR日志
- 软测实用六法
- jquery easyui 使用注意事项
- HDU6069 2017 Multi-University Training Contest
- Hbase超详细介绍
- onload事件
- Java主动调用GC方法
- bootstrap typeahead 3