iview admin+bootstrap-table+tableexportフロントエンドエクスポートexcelを実現

19325 ワード

1.端末実行

npm install bootstrap@3 --save--dev
npm install [email protected] --save--dev
npm install --save popper.js
npm install tableexport.jquery.plugin  --save--dev

main.js次のコードを追加
import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.min.js'
import 'bootstrap-table/dist/bootstrap-table.min.css'
import 'bootstrap-table/dist/bootstrap-table.min.js'
import 'bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js'
import 'tableexport.jquery.plugin/tableExport.min.js'
// To export the table in XLSX (Excel 2007+ XML Format) format, you need to include additionally
import 'tableexport.jquery.plugin/libs/js-xlsx/xlsx.core.min.js'

(bootstrapはjqueryに依存する:jqueryを導入する方法)

2.ページ

<table id="mytab" class="table table-hover"></table>

表の初期化
initTable() {
      let that = this;
      $("#mytab").bootstrapTable("destroy");
      $("#mytab").bootstrapTable({
        data: that.data,//      
        showColumns: true,
        smartDisplay: false,
        columns: [{
            title: "  ",
            field: "name"
        }]
      });
}

データ変更時にテーブルをリフレッシュする(ページング操作はpageNumber,pageSize)
$("#mytab").bootstrapTable("refresh", this.data);
$("#mytab").bootstrapTable("refreshOptions", {
              pageNumber: this.current,
              pageSize: this.pageSize
            });

3.excelのエクスポート

 $("#mytab").tableExport({
        type: "excel",
        exportDataType: "all",
        ignoreColumn: [3],//        
        fileName: "excel  ", //      
        onCellHtmlData: function(cell, row, col, data) {
          return data;
        }
});

4.エクスポートしたexcelに枠線を付ける


tableexportを変更します.jquery.plugin/libs/js-xlsx/xlsx.core.min.jsファイル
H += ""; u = y(b); c(u).each(function (){

H += "
"; u = y(b); c(u).each(function () {

***その ノート

( columns field name )

$("#mytab").bootstrapTable("hideColumn", "name");

columns

		 {
            field: "SerialNumber",
            title: "  ",
            formatter: function(value, row, index) {
              return index + 1;
            }
          }

columns

		{
            title: "  ",
            field: "gender",
            formatter: function(value, row, index) {
              if (gender == 1) {
                return " ";
              } else {
                return " ";
              }
            }
          },
           {
            title: "  ",
            field: "time",
            formatter: function(value, row, index) {
              return  formatDate(
                new Date(row.time),
                "yyyy-MM-dd"
              );
            }
          },

columns

{
            field: "oper",
            title: "  ",
            formatter: function(value, row, index) {
              return '';
            },
            events: {
              "click .info": function(ev, value, row, index) {
                console.log(ev, value, row, index);
              }
            }
          }