蔡志德 發表於 2025-11-25 10:59:00

如何使用 vxe-table 实现虚拟滚动Dom的查找替换功能,excel查找与替换功能

<p>如何使用 vxe-table 实现虚拟滚动Dom的查找替换功能,excel查找与替换功能</p>
<p>https://vxetable.cn</p>
<p>通过 keyboard-config.isFNR 启用,支持 formatter 内容查找,需要注意如果不希望被随意替换成任意值时应该重写替换方法</p>
<p><img src="https://img2024.cnblogs.com/blog/3563285/202511/3563285-20251125105624160-1363713805.gif"></p>
<p>查找规则是按照字段实际值进行匹配,如果需要按照自定义的值进行匹配,可以通过 fnr-config.findMethod 自定义方法</p>
<pre><code class="language-HTML">&lt;template&gt;
&lt;div&gt;
    &lt;vxe-grid v-bind="gridOptions"&gt;&lt;/vxe-grid&gt;
&lt;/div&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { reactive } from 'vue'

const sexList = [
{ label: '女', value: '0' },
{ label: '男', value: '1' }
]

const gridOptions = reactive({
border: true,
height: 500,
showOverflow: true,
columnConfig: {
    resizable: true
},
mouseConfig: {
    area: true // 是否开启区域选取
},
areaConfig: {
    multiple: false, // 是否启用多区域选取功能
    showColumnStatus: true, // 选择单元格后显示列状态
    showRowStatus: true, // 选择单元格后显示行状态
    selectCellToRow: true // 选择单元格自动选中行
},
keyboardConfig: {
    isClip: true, // 是否开启复制粘贴
    isArrow: true, // 是否开启方向键功能
    isShift: true, // 是否开启同时按住方向键以活动区域为起始,向指定方向扩展单元格区域
    isTab: true, // 是否开启 Tab 键功能
    isEnter: true, // 是否开启回车键功能
    isFNR: true // 是否开启查找与替换
},
fnrConfig: {
    replaceMethod ({ replaceValue, row, column }) {
      // 自定义替换值的逻辑
      if (column.field === 'sex') {
      const sexValue = replaceValue ? (replaceValue === '男' ? '1' : '0') : ''
      row = sexValue
      }
    }
},
columns: [
    { type: 'seq', width: 60 },
    { field: 'name', title: 'name' },
    { field: 'role', title: 'Role' },
    {
      field: 'sex',
      title: 'sex',
      formatter ({ cellValue }) {
      const item = sexList.find(item =&gt; item.value === cellValue)
      return item ? item.label : cellValue
      }
    },
    { field: 'num', title: 'Num' },
    { field: 'age', title: 'age' },
    { field: 'address', title: 'Address', width: 300 }
],
data: [
    { id: 10001, name: 'Test1', role: 'Develop', sex: '1', num: 23, age: 28, address: 'Shengzhen' },
    { id: 10002, name: 'Test2', role: 'Test', sex: '0', num: 23, age: 22, address: 'Guangzhou' },
    { id: 10003, name: 'Test3', role: 'PM', sex: '1', num: 23, age: 32, address: 'Shanghai' },
    { id: 10004, name: 'Test4', role: 'Designer', sex: '0', num: 456, age: 24, address: 'Shanghai' },
    { id: 10005, name: 'Test5', role: 'Designer', sex: '0', num: 23, age: 42, address: 'Guangzhou' },
    { id: 10006, name: 'Test6', role: 'Designer', sex: '1', num: 23, age: 38, address: 'Shengzhen' },
    { id: 10007, name: 'Test7', role: 'Test', sex: '0', num: 100, age: 24, address: 'Shengzhen' },
    { id: 10008, name: 'Test8', role: 'PM', sex: '1', num: 345, age: 34, address: 'Shanghai' },
    { id: 10009, name: 'Test9', role: 'Designer', sex: '1', num: 67, age: 52, address: 'Shanghai' },
    { id: 10010, name: 'Test10', role: 'Test', sex: '0', num: 23, age: 44, address: 'Guangzhou' },
    { id: 10011, name: 'Test11', role: 'Designer', sex: '1', num: 56, age: 52, address: 'Shanghai' },
    { id: 10012, name: 'Test12', role: 'Test', sex: '0', num: 23, age: 16, address: 'Guangzhou' }
]
})
&lt;/script&gt;
</code></pre>
<p>https://gitee.com/x-extends/vxe-table</p><br><br>
来源:https://www.cnblogs.com/qaz666/p/19267366
頁: [1]
查看完整版本: 如何使用 vxe-table 实现虚拟滚动Dom的查找替换功能,excel查找与替换功能