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:全英文的,慎入