bootstrap table 导出数据为excel或其他,为啥点击了没反应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bootstrap table 导出数据为excel或其他,为啥点击了没反应相关的知识,希望对你有一定的参考价值。
参考技术A Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。引用的css:
<link href="@Url.Content("~/Css/bootstrap.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Css/bootstrap-table.css")" rel="stylesheet" type="text/css" />
引用的JS:
<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script src="../../Scripts/bootstrap.min.js" type="text/javascript"></script>
<script src="../../Scripts/bootstrap-table.js" type="text/javascript"></script>
<script src="../../Scripts/bootstrap-table-zh-CN.js" type="text/javascript"></script>
常用方法:
刷新表格:$table.bootstrapTable('refresh');
获取选择的行:$table.bootstrapTable('getSelections');
1.服务端请求:即当数据量大,千百万条数据的情况下,只获取当页条件下的数据。每点击分页或查询都向服务端重新获取分页数据。
前端代码:
?
1
2
3
4
5
6
7
function
initTable()
var
queryUrl = '@Url.Content("~/Welcome/QueryList")'
+ '?rnd='
+ +Math.random();
$table = $('#table-javascript').bootstrapTable(
//method: 'get',<br><br>
method: 'post',
contentType: "application/x-www-form-urlencoded",//必须的,
public
ActionResult QueryList(int
pageIndex = 1, int
pageSize = 100)
try
string
name = Request["UserName"];
string
birthday = Request["Birthday"];
string
gender = Request["Gender"];
string
Address = Request["Address"];
Document docQuery =
new Document();
if
(!string.IsNullOrEmpty(name))
docQuery.Add("Name",
new MongoRegex(".*"
+ name + ".*", MongoRegexOption.IgnoreCase));
if
(!string.IsNullOrEmpty(birthday))
docQuery.Add("Birthday",
new MongoRegex(".*"
+ birthday + ".*", MongoRegexOption.IgnoreCase));
if
(!string.IsNullOrEmpty(gender))
docQuery.Add("Gender", gender);
if
(!string.IsNullOrEmpty(Address))
docQuery.Add("Address",
new MongoRegex(".*"
+ Address + ".*", MongoRegexOption.IgnoreCase));
if
(this.HttpContext.Request.QueryString.AllKeys.Contains("ToExcel"))
List<OpenRoom> listExport = MongoDbHelper.GetList<OpenRoom>(MongoTables.OpenRoom, docQuery);
//List<string> listTilte = new List<string> "" ;
ExportMethod(listExport);
long
totalCount = MongoDbHelper.GetTotalCount<OpenRoom>(MongoTables.OpenRoom, docQuery);
var
list = MongoDbHelper.GetList<OpenRoom>(MongoTables.OpenRoom, docQuery,
new Document(), pageIndex, pageSize);
string
jsonString = JsonHelper.ObjToJson(list);
jsonString =
"\"total\":"
+ totalCount.ToString() + ",\"rows\":"
+ jsonString + "";
return
Content(jsonString);
catch
(Exception ex)
return
Content(ex.Message);
注意返回的格式:要返回总记录数total及分页后数据rows。
未解决问题:导出Excel时,超出65536行数据时,会异常。怎样解决这个问题?
2.客户端请求:当数据量较少,只有上千条数据时,一次性将所有数据返回给客户端,无论点下一页,或搜索条件时,不向服务端发请求,实现全文检索。
这个比较简单,将sidePagination属性设为 "client",因为客户端会处理分页和全文检索,无需向服务器端发请求,所以也无需传递参数。
前端JS:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
function
initTable()
var
queryUrl = '@Url.Content("~/UserInfo/QueryList")'
+ '?rnd='
+ +Math.random();
$table = $('#table-javascript').bootstrapTable(
method:
'get',
url: queryUrl,
height: $(window).height() - 200,
striped:
true,
pagination:
true,
pageSize: 50,
pageList: [10, 25, 50, 100, 200],
search:
true,
sidePagination:
"client",
showColumns:
true,
minimunCountColumns: 2,
columns: [
field:
'state',
radio:
true
,
field:
'Id',
title:
'ID',
align:
'right',
valign:
'bottom',
sortable:
true
,
field:
'UserName',
title:
'姓名',
width: 100,
align:
'center',
valign:
'middle',
sortable:
true,
formatter: nameFormatter
,
field:
'Account',
title:
'账号',
align:
'left',
valign:
'top',
sortable:
true
,
field:
'Address',
title:
'家乡',
align:
'middle',
valign:
'top',
sortable:
true
,
field:
'Phone',
title:
'电话',
align:
'left',
valign:
'top',
sortable:
true
,
field:
'QQ',
title:
'QQ号码',
align:
'left',
valign:
'top',
sortable:
true
,
field:
'Remark',
title:
'备注',
align:
'left',
valign:
'top',
sortable:
true
,
field:
'operate',
title:
'操作',
align:
'center',
width: 100,
valign:
'middle',
formatter: operateFormatter,
events: operateEvents
]
);
后台直接返回Json数据即可。
后台代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public
ActionResult QueryList()
try
List<sys_user> list = accessHelper.GetUserList();
string
jsonString = JsonHelper.ObjToJson(list);
return
Content(jsonString);
catch
(Exception ex)
return
Content(ex.Message);
本回答被提问者采纳
BootstrapTable-导出数据
要导出的数据:https://examples.bootstrap-table.com/json/data1.json?order=asc
使用的插件(注意插件版本依赖):tableExport.jquery.plugin
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>TableExport</title> <!--jquery--> <script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js"></script> <!--bootstrap--> <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.bootcss.com/popper.js/1.14.7/umd/popper.min.js"></script> <script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> <!--fontawesome--> <script src="https://cdn.bootcss.com/font-awesome/5.8.1/js/all.min.js"></script> <!--bootstrap-table--> <link href="https://cdn.bootcss.com/bootstrap-table/1.14.2/bootstrap-table.min.css" rel="stylesheet"> <script src="https://cdn.bootcss.com/bootstrap-table/1.14.2/bootstrap-table.min.js"></script> <!--bootstrap-table-lanuage--> <script src="https://cdn.bootcss.com/bootstrap-table/1.14.2/bootstrap-table-locale-all.min.js"></script> <!--bootstrap-table-export--> <script src="https://cdn.bootcss.com/bootstrap-table/1.14.2/extensions/export/bootstrap-table-export.min.js"></script> <!--在客户端保存生成的导出文件--> <script src="https://cdn.bootcss.com/FileSaver.js/2014-11-29/FileSaver.min.js"></script> <!--以XLSX(Excel 2007+ XML格式)格式导出表(SheetJS)--> <script src="https://cdn.bootcss.com/xlsx/0.14.2/xlsx.core.min.js"></script> <!--以PNG格式导出表格--> <!--对于IE支持包括 html2canvas 之前的 es6-promise--> <script src="https://cdn.bootcss.com/es6-promise/4.1.1/es6-promise.auto.min.js"></script> <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.min.js"></script> <!--将表导出为PDF文件--> <script src="https://unpkg.com/tableexport.jquery.plugin/libs/jsPDF/jspdf.min.js"></script> <script src="https://unpkg.com/tableexport.jquery.plugin/libs/jsPDF-AutoTable/jspdf.plugin.autotable.js"></script> <!--无论期望的格式如何,最后都包含 tableexport.jquery.plugin(不是tableexport)--> <script src="https://unpkg.com/tableexport.jquery.plugin/tableExport.min.js"></script> </head> <body> <div class="container"> <div id="toolbar"> <select class="form-control"> <option value="">Export Basic</option> <option value="all">Export All</option> <option value="selected">Export Selected</option> </select> </div> <button type="button" onclick="exportData()" class=‘btn btn-mini btn-info‘>导出</button> <table id="table" data-locale="zh-CN"></table> </div> <script> $(function () { $.ajax({ url: "https://examples.bootstrap-table.com/json/data1.json?order=asc", success: function (result) { // 初始化表格 $(‘#toolbar‘).find(‘select‘).change(function () { $(‘#table‘).bootstrapTable(‘destroy‘).bootstrapTable({ data: result, pagination: true,//显示分页 clickToSelect: true,//单击列表选中 toolbar: "#toolbar",//显示工具栏 showToggle: true,//工具栏上显示列表模式切换 showExport: true,//工具栏上显示导出按钮 exportDataType: $(this).val(),//显示导出范围 exportTypes: [‘json‘, ‘xml‘, ‘png‘, ‘csv‘, ‘txt‘, ‘sql‘, ‘doc‘, ‘excel‘, ‘xlsx‘, ‘pdf‘],//导出格式 exportOptions: {//导出设置 fileName: ‘Tablexxx‘,//下载文件名称 }, columns: [ { field: ‘state‘, checkbox: true, visible: $(this).val() === ‘selected‘ }, { field: ‘id‘, title: ‘ID‘ }, { field: ‘name‘, title: ‘Item Name‘ }, { field: ‘price‘, title: ‘Item Price‘ } ] }) }).trigger(‘change‘); } }); }) // 自定义按钮导出数据 function exportData(){ $(‘#table‘).tableExport({ type: ‘excel‘, exportDataType: "all", ignoreColumn: [0],//忽略某一列的索引 fileName: ‘Tablexxx‘,//下载文件名称 onCellHtmlData: function (cell, row, col, data){//处理导出内容,自定义某一行、某一列、某个单元格的内容 console.info(data); return data; }, }); } </script> </body> </html>
结果
bootstrap-table-export:https://bootstrap-table.com/docs/extensions/export/
tableexport.jquery.plugin CDN:https://unpkg.com/tableexport.jquery.plugin/
以上是关于bootstrap table 导出数据为excel或其他,为啥点击了没反应的主要内容,如果未能解决你的问题,请参考以下文章
jsPDF 将html代码中的table导出为pdf文件怎么弄