VUE 之 Jspreadsheet CE电子表格的使用步骤

步骤: 下载

npm install jexcel
 或
 npm install jspreadsheet-ce

组件引入

import jexcel from jexcel
import jexcel/dist/jexcel.css
或
import jexcel from jspreadsheet-ce
import jspreadsheet-ce/dist/jexcel.css

定义容器

<div>
 <div class="deploy">
     <span>配置列:</span>
     <el-checkbox v-model="checked" @change="checkedChange">宽上下</el-checkbox>
     <el-checkbox v-model="checkeds" @change="checkedChanges">高左右</el-checkbox>
   </div>
   <div id="app" ref="spreadsheet" />
 </div>

定义配置项

data() {
          
   
	return {
          
   
		options: {
          
   
        data: Arr,
        allowToolbar: false,
        minDimensions: [10, 30],
        tableOverflow: true,
        // lazyLoading: true,
        tableWidth: 1678px,
        tableHeight: 560px,
        freezeColumns: 3,
        columns: [
          {
          
    type: text, title: xx(mm), width: 150px },
          {
          
    type: text, title: xx(mm), width: 150px },
          {
          
    type: hidden, title: xx(mm), width: 150px },
          {
          
    type: hidden, title: xx(mm), width: 150px },
          {
          
    type: text, title: xx(片), width: 150px },
          {
          
    type: text, title: xx(元/㎡), width: 150px },
          {
          
    type: text, title: xx, width: 150px },
          {
          
    type: text, title: xx, width: 170px },
          {
          
    type: text, title: xx, width: 150px },
          {
          
    type: text, title: xx, width: 150px },
          {
          
    type: text, title: xx(㎡), width: 150px },
          {
          
    type: text, title: xx(㎡), width: 150px }
        ],
        // rowResize: true,
        // columnDrag: true,
        // allowComments: true,
        contextMenu: function(obj, x, y, e) {
          
   
          console.log(`----`, obj.options)
          var items = []

          if (y == null) {
          
   
          } else {
          
   
            // Insert new row
            if (obj.options.allowInsertRow == true) {
          
   
              items.push({
          
   
                title: 在此前插入行,
                onclick: function() {
          
   
                  obj.insertRow(1, parseInt(y), 1)
                }
              })

              items.push({
          
   
                title: 在此后插入行,
                onclick: function() {
          
   
                  obj.insertRow(1, parseInt(y))
                }
              })
            }

            if (obj.options.allowDeleteRow == true) {
          
   
              items.push({
          
   
                title: 删除选中行,
                onclick: function() {
          
   
                  obj.deleteRow(obj.getSelectedRows().length ? undefined : parseInt(y))
                }
              })
            }
          }
          // Line
          items.push({
          
    type: line })
          // About
          if (obj.options.about) {
          
   
            items.push({
          
   
              title: 关于,
              onclick: function() {
          
   
                alert(obj.options.about)
              }
            })
          }

          return items
        }
      }
}
}

js实例化表格并渲染之容器中

mounted() {
          
   
	const spreadsheet = jexcel(this.$refs.spreadsheet, options)
      Object.assign(this, {
          
    spreadsheet })
      spreadsheet.refresh()
}

来看效果:

此表格就是web版excel功能非常强大且变态,感兴趣的可以尝试一下; 官方api ps:全英文的,慎入

经验分享 程序员 微信小程序 职场和发展