diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html
index f2bb1774ff..ae787c5a04 100644
--- a/Document-Processing-toc.html
+++ b/Document-Processing-toc.html
@@ -5582,6 +5582,11 @@
Create a object structure
Changing the active sheet while importing a file
Identify the context menu opened
+ Find and replace the text within the selected range of cells
+ Add dynamic cell templates
+ Add an icon to the cell
+ Get the filtered row data
+ Paste only values without formatting and styles
Mobile Responsiveness
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-cell-icon.md b/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-cell-icon.md
new file mode 100644
index 0000000000..cffac4fc2b
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-cell-icon.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title: Add icons inside cells in Vue Spreadsheet component | Syncfusion
+description: Learn here all about adding icon inside cells using a custom template in Syncfusion Vue Spreadsheet component of Syncfusion Essential JS 2 and more.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+---
+
+# Add Custom Icons to Cells in Vue Spreadsheet
+
+In the Syncfusion Spreadsheet, you can render custom icons inside specific cells by defining a custom template property within the cell model. During the [beforeCellRender](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#beforecellrender) event, the icon element can be appended to the corresponding table cell (td) by checking whether the cell contains this template property.
+
+The following sample demonstrates how to add icons to cells by assigning the template property in the cell definition. Additionally, a custom ribbon item named "Add Icon" is included under a new "Template" ribbon tab. When this ribbon item is selected, the Spreadsheet dynamically inserts an icon into the currently active cell.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "/document-processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1" %}
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-dynamic-cell-template.md b/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-dynamic-cell-template.md
new file mode 100644
index 0000000000..17e53ec7a3
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/how-to/add-dynamic-cell-template.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title: Dynamic cell template in Vue Spreadsheet component | Syncfusion
+description: Render dropdown templates inside cells in Syncfusion Vue Spreadsheet component of Syncfusion Essential JS 2 and more.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+---
+
+# Create Dynamic Cell Templates with Dropdowns in Vue Spreadsheet
+
+You can add templates to cells in the Syncfusion Spreadsheet component by dynamically assigning a custom template property directly to individual cells. When a cell has this custom template property, you can use the [beforeCellRender](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#beforecellrender) event to append the desired template element to the cell.
+
+The following sample demonstrates how to insert a [Syncfusion Dropdown component](https://www.npmjs.com/package/@syncfusion/ej2-dropdowns) into Spreadsheet cells using this custom template property. Additionally, a custom ribbon item named "DropDown List" is included under a new "Template" ribbon tab. When this ribbon item is selected, the Spreadsheet dynamically inserts a dropdown into the currently active cell.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "/document-processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1" %}
\ No newline at end of file
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/how-to/find-replace-in-range.md b/Document-Processing/Excel/Spreadsheet/Vue/how-to/find-replace-in-range.md
new file mode 100644
index 0000000000..194ec78f06
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/how-to/find-replace-in-range.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title: Find and replace in range in Vue Spreadsheet component | Syncfusion
+description: Learn here all about performing find and replace limited to the range in Syncfusion Vue Spreadsheet component of Syncfusion Essential JS 2 and more.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+---
+
+# Find and replace the text within selected range of cells
+
+In Syncfusion Spreadsheet, the "Replace All" action by default searches and replaces a text throughout the entire sheet, regardless of the selected range. To limit "Replace All" to only the selected range, you can customize the addressCollection based on the selectedRange in the [actionBegin](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#actionbegin) event when the action is `beforeReplaceAll`.
+
+The following sample demonstrates how to limit the "Replace All" operation to the currently selected range.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/find-and-replace-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/find-and-replace-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "/document-processing/code-snippet/spreadsheet/vue/find-and-replace-cs1" %}
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/how-to/get-filtered-data.md b/Document-Processing/Excel/Spreadsheet/Vue/how-to/get-filtered-data.md
new file mode 100644
index 0000000000..da632b6c2b
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/how-to/get-filtered-data.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title: Retrieve filtered row data in Vue Spreadsheet component | Syncfusion
+description: Learn here all about getting filtered row data in Syncfusion Vue Spreadsheet component of Syncfusion Essential JS 2 and more.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+---
+
+# Get filtered row data in Vue Spreadsheet
+
+Filtering in the Syncfusion Spreadsheet allows you to display only the rows that match your criteria, hiding all others. You can enable filtering by setting the [allowFiltering](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#allowfiltering) property, and apply filters either through the UI or programmatically using the [applyFilter](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#applyfilter) method. To identify which rows are filtered, iterate through the sheet's row collection and check the `isFiltered` property of each row object. This flag indicates whether a row is currently hidden due to filtering.
+
+The following example shows how to get the filtered rows from the Spreadsheet:
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/filter-cs2/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/filter-cs2/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "/document-processing/code-snippet/spreadsheet/vue/filter-cs2" %}
\ No newline at end of file
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/how-to/paste-only-values-without-formatting.md b/Document-Processing/Excel/Spreadsheet/Vue/how-to/paste-only-values-without-formatting.md
new file mode 100644
index 0000000000..ab4a9d3f21
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/how-to/paste-only-values-without-formatting.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title: Paste Without Formatting in Vue Spreadsheet component | Syncfusion
+description: Learn here about Paste only values without formatting during copy and paste in Syncfusion Vue Spreadsheet component of Syncfusion Essential JS 2 and more.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+---
+
+# Paste Values Without Formatting and styles in Vue Spreadsheet
+
+In the Syncfusion Vue Spreadsheet, you can make the paste action insert only the raw values into the cells, without bringing any formatting or styles from the copied content. This can be done by using the [actionBegin](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/index-default#actionbegin) event, where the Spreadsheet provides the details of the action being performed. When the action is a clipboard operation, you can set the paste type to Values, ensuring that only plain values are pasted into the sheet.
+
+The following example shows how to paste values without formatting.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/paste-values-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/vue/paste-values-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "/document-processing/code-snippet/spreadsheet/vue/paste-values-cs1" %}
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app-composition.vue b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app-composition.vue
new file mode 100644
index 0000000000..bd0790e026
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app-composition.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app.vue b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app.vue
new file mode 100644
index 0000000000..39e1b117c2
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/app.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.css b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.css
new file mode 100644
index 0000000000..dd4453b8fb
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.css
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.html b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.html
new file mode 100644
index 0000000000..328c2a22d7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
+ Loading....
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.js b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.js
new file mode 100644
index 0000000000..f07f96353e
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/index.js
@@ -0,0 +1,66 @@
+import Vue from 'vue';
+import { SpreadsheetPlugin } from '@syncfusion/ej2-vue-spreadsheet';
+
+Vue.use(SpreadsheetPlugin);
+
+new Vue({
+ el: '#app',
+ template: `
+
+
+ `,
+ methods: {
+ // Creates the wrapper that contains the plus icon
+ createPlusIconWrapper() {
+ const wrapperDiv = document.createElement('div');
+ wrapperDiv.className = 'e-custom-wrapper';
+ const iconSpan = document.createElement('span');
+ iconSpan.className = 'e-icons e-plus e-custom-icon';
+ wrapperDiv.appendChild(iconSpan);
+ return wrapperDiv;
+ },
+
+ // Syncfusion Spreadsheet 'created' event handler
+ onCreated() {
+ const spreadsheet = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+ if (!spreadsheet) return;
+
+ // Set the template for A1, B1, C1
+ spreadsheet.updateCell({ template: 'plus-icon' }, 'A1');
+ spreadsheet.updateCell({ template: 'plus-icon' }, 'B1');
+ spreadsheet.updateCell({ template: 'plus-icon' }, 'C1');
+ spreadsheet.resize();
+
+ // Add a custom Ribbon tab with a button to insert the icon template in the active cell
+ spreadsheet.addRibbonTabs([
+ {
+ header: { text: 'Template' },
+ content: [
+ {
+ text: 'Add Icon',
+ tooltipText: 'Initialize',
+ click: () => {
+ const ss = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+ if (!ss) return;
+ const sheet = ss.getActiveSheet();
+ ss.updateCell({ template: 'plus-icon' }, sheet.activeCell);
+ ss.resize();
+ },
+ },
+ ],
+ },
+ ]);
+ },
+
+ // Syncfusion Spreadsheet 'beforeCellRender' event handler
+ onBeforeCellRender(args) {
+ if (args.cell && args.cell.template === 'plus-icon') {
+ const wrapperDiv = this.createPlusIconWrapper();
+ args.element.insertBefore(wrapperDiv, args.element.firstChild);
+ }
+ },
+ },
+});
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/systemjs.config.js b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/systemjs.config.js
new file mode 100644
index 0000000000..81ff07a381
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/add-icon-in-cell-cs1/systemjs.config.js
@@ -0,0 +1,43 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/23.1.36/"
+ },
+ map: {
+ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js",
+vue: "https://unpkg.com/vue@2.6.14/dist/vue.min.js",
+ "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js",
+ "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js",
+ "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js",
+ "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js",
+ "@syncfusion/ej2-dropdowns":"syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js",
+ "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js",
+ "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js",
+ "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js",
+ "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js",
+ "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js",
+ "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js",
+ "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js",
+ "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js",
+ "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js",
+ "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js",
+ "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js",
+ "@syncfusion/ej2-vue-base": "syncfusion:ej2-vue-base/dist/ej2-vue-base.umd.min.js",
+ "@syncfusion/ej2-vue-spreadsheet": "syncfusion:ej2-vue-spreadsheet/dist/ej2-vue-spreadsheet.umd.min.js"
+ }
+});
+
+System.import('index.js');
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app-composition.vue b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app-composition.vue
new file mode 100644
index 0000000000..cf1dc4e079
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app-composition.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app.vue b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app.vue
new file mode 100644
index 0000000000..27c9036d6d
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/app.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.css b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.css
new file mode 100644
index 0000000000..dd4453b8fb
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.css
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.html b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.html
new file mode 100644
index 0000000000..328c2a22d7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
+ Loading....
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.js b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.js
new file mode 100644
index 0000000000..71fd7e172b
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/index.js
@@ -0,0 +1,102 @@
+import Vue from 'vue';
+import { SpreadsheetPlugin } from '@syncfusion/ej2-vue-spreadsheet';
+import { DropDownList } from '@syncfusion/ej2-dropdowns';
+import { getCellIndexes, getCell, setCell } from '@syncfusion/ej2-spreadsheet';
+
+Vue.use(SpreadsheetPlugin);
+
+new Vue({
+ el: '#app',
+ template: `
+
+
+ `,
+ data() {
+ return {
+ dropDownOptions: [10, 20, 30, 40, 50, 60],
+ };
+ },
+ methods: {
+ onCreated() {
+ const spreadsheet = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+ if (!spreadsheet) return;
+
+ // Add custom Ribbon tab and button to inject dropdown into the active cell
+ spreadsheet.addRibbonTabs([
+ {
+ header: { text: 'Template' },
+ content: [
+ {
+ text: 'DropDown List',
+ click: () => {
+ const ss = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+ if (!ss) return;
+ const sheet = ss.getActiveSheet();
+ const [rowIdx, colIdx] = getCellIndexes(sheet.activeCell);
+ const cellModel = getCell(rowIdx, colIdx, sheet);
+ const cellEle = ss.getCell(rowIdx, colIdx);
+
+ // Avoid re-render if the cell already uses the dropdown template
+ if (cellModel && cellModel.template === 'dropdown-list') return;
+
+ // Render dropdown in the cell
+ this.addDropDownlist(cellEle, this.dropDownOptions);
+ // Mark model template so it re-renders correctly on virtualization/rerender
+ setCell(rowIdx, colIdx, sheet, { template: 'dropdown-list' }, true);
+ },
+ },
+ ],
+ },
+ ]);
+
+ // Set row height for a range
+ spreadsheet.setRowsHeight(35, ['1:100']);
+
+ // Initialize A1–D1 with dropdown template
+ const activeSheet = spreadsheet.getActiveSheet();
+ for (let colIdx = 0; colIdx <= 3; colIdx++) {
+ setCell(0, colIdx, activeSheet, { template: 'dropdown-list' }, true);
+ }
+
+ spreadsheet.resize();
+ },
+
+ onBeforeCellRender(args) {
+ // Render dropdown if a cell has template 'dropdown-list'
+ if (args && args.cell && args.cell.template === 'dropdown-list') {
+ this.addDropDownlist(args.element, this.dropDownOptions);
+ }
+ },
+
+ // Render Syncfusion DropDownList into the provided cell element
+ addDropDownlist(element, options) {
+ if (!element) return;
+ // Clear any previous content to avoid duplicates
+ element.innerHTML = '';
+
+ const inputEle = document.createElement('input');
+ element.appendChild(inputEle);
+
+ const spreadsheet = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+
+ // Instantiate EJ2 DropDownList
+ new DropDownList(
+ {
+ placeholder: 'Select a value',
+ dataSource: options,
+ cssClass: 'e-dropdown-list',
+ change: (event) => {
+ if (!spreadsheet) return;
+ const sheet = spreadsheet.getActiveSheet();
+ // Update the active cell's value when dropdown changes
+ spreadsheet.updateCell({ value: String(event.value) }, sheet.activeCell);
+ },
+ },
+ inputEle
+ );
+ },
+ },
+});
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/systemjs.config.js b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/systemjs.config.js
new file mode 100644
index 0000000000..81ff07a381
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/dynamic-cell-template-cs1/systemjs.config.js
@@ -0,0 +1,43 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/23.1.36/"
+ },
+ map: {
+ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js",
+vue: "https://unpkg.com/vue@2.6.14/dist/vue.min.js",
+ "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js",
+ "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js",
+ "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js",
+ "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js",
+ "@syncfusion/ej2-dropdowns":"syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js",
+ "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js",
+ "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js",
+ "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js",
+ "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js",
+ "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js",
+ "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js",
+ "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js",
+ "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js",
+ "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js",
+ "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js",
+ "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js",
+ "@syncfusion/ej2-vue-base": "syncfusion:ej2-vue-base/dist/ej2-vue-base.umd.min.js",
+ "@syncfusion/ej2-vue-spreadsheet": "syncfusion:ej2-vue-spreadsheet/dist/ej2-vue-spreadsheet.umd.min.js"
+ }
+});
+
+System.import('index.js');
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app-composition.vue b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app-composition.vue
new file mode 100644
index 0000000000..f4dd0502db
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app-composition.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app.vue b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app.vue
new file mode 100644
index 0000000000..2dd9824a0b
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/app.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/data.js b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/data.js
new file mode 100644
index 0000000000..d9ad57d0a7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/data.js
@@ -0,0 +1,238 @@
+define(["require", "exports"], function (require, exports) {
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.getDefaultData = [
+ {
+ "Customer Name": "Romona Heaslip",
+ "Model": "Taurus",
+ "Color": "Aquamarine",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "07/11/2015",
+ "Amount": "8529.22"
+ },
+ {
+ "Customer Name": "Clare Batterton",
+ "Model": "Sparrow",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "7/13/2016",
+ "Amount": "17866.19"
+ },
+ {
+ "Customer Name": "Eamon Traise",
+ "Model": "Grand Cherokee",
+ "Color": "Blue",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "09/04/2015",
+ "Amount": "13853.09"
+ },
+ {
+ "Customer Name": "Julius Gorner",
+ "Model": "GTO",
+ "Color": "Aquamarine",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/15/2017",
+ "Amount": "2338.74"
+ },
+ {
+ "Customer Name": "Jenna Schoolfield",
+ "Model": "LX",
+ "Color": "Yellow",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "10/08/2014",
+ "Amount": "9578.45"
+ },
+ {
+ "Customer Name": "Marylynne Harring",
+ "Model": "Catera",
+ "Color": "Green",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "7/01/2017",
+ "Amount": "19141.62"
+ },
+ {
+ "Customer Name": "Vilhelmina Leipelt",
+ "Model": "7 Series",
+ "Color": "Goldenrod",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/20/2015",
+ "Amount": "6543.30"
+ },
+ {
+ "Customer Name": "Barby Heisler",
+ "Model": "Corvette",
+ "Color": "Red",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "11/24/2014",
+ "Amount": "13035.06"
+ },
+ {
+ "Customer Name": "Karyn Boik",
+ "Model": "Regal",
+ "Color": "Indigo",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "05/12/2014",
+ "Amount": "18488.80"
+ },
+ {
+ "Customer Name": "Jeanette Pamplin",
+ "Model": "S4",
+ "Color": "Fuscia",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "12/30/2014",
+ "Amount": "12317.04"
+ },
+ {
+ "Customer Name": "Cristi Espinos",
+ "Model": "TL",
+ "Color": "Aquamarine",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/18/2013",
+ "Amount": "6230.13"
+ },
+ {
+ "Customer Name": "Issy Humm",
+ "Model": "Club Wagon",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "02/02/2015",
+ "Amount": "9709.49"
+ },
+ {
+ "Customer Name": "Tuesday Fautly",
+ "Model": "V8 Vantage",
+ "Color": "Crimson",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "11/19/2014",
+ "Amount": "9766.10"
+ },
+ {
+ "Customer Name": "Rosemaria Thomann",
+ "Model": "Caravan",
+ "Color": "Violet",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "02/08/2014",
+ "Amount": "7685.49"
+ },
+ {
+ "Customer Name": "Lyell Fuentez",
+ "Model": "Bravada",
+ "Color": "Violet",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "08/05/2016",
+ "Amount": "18012.45"
+ },
+ {
+ "Customer Name": "Raynell Layne",
+ "Model": "Colorado",
+ "Color": "Pink",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "05/30/2016",
+ "Amount": "2785.49"
+ },
+ {
+ "Customer Name": "Raye Whines",
+ "Model": "4Runner",
+ "Color": "Red",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "12/10/2016",
+ "Amount": "9967.74"
+ },
+ {
+ "Customer Name": "Virgina Aharoni",
+ "Model": "TSX",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "10/23/2014",
+ "Amount": "5584.33"
+ },
+ {
+ "Customer Name": "Peta Cheshir",
+ "Model": "Pathfinder",
+ "Color": "Red",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "12/24/2015",
+ "Amount": "5286.53"
+ },
+ {
+ "Customer Name": "Jule Urion",
+ "Model": "Charger",
+ "Color": "Violet",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "11/20/2013",
+ "Amount": "13511.91"
+ },
+ {
+ "Customer Name": "Lew Gilyatt",
+ "Model": "Bonneville",
+ "Color": "Crimson",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "11/19/2013",
+ "Amount": "6498.19"
+ },
+ {
+ "Customer Name": "Jobey Fortun",
+ "Model": "B-Series",
+ "Color": "Blue",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "10/30/2014",
+ "Amount": "10359.67"
+ },
+ {
+ "Customer Name": "Blondie Crump",
+ "Model": "Voyager",
+ "Color": "Turquoise",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "04/06/2018",
+ "Amount": "8118.39"
+ },
+ {
+ "Customer Name": "Florentia Binns",
+ "Model": "Grand Prix",
+ "Color": "Orange",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "10/13/2016",
+ "Amount": "10204.37"
+ },
+ {
+ "Customer Name": "Jaquelin Galtone",
+ "Model": "Sunbird",
+ "Color": "Red",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "10/22/2013",
+ "Amount": "6528.06"
+ },
+ {
+ "Customer Name": "Hakeem Easseby",
+ "Model": "Mirage",
+ "Color": "Crimson",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "9/12/2014",
+ "Amount": "5619.25"
+ },
+ {
+ "Customer Name": "Nickolaus Gidman",
+ "Model": "XK",
+ "Color": "Orange",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "05/12/2016",
+ "Amount": "5091.43"
+ },
+ {
+ "Customer Name": "Jenine Iglesia",
+ "Model": "Accord",
+ "Color": "Orange",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "09/03/2018",
+ "Amount": "14566.08"
+ },
+ {
+ "Customer Name": "Fax Witherspoon",
+ "Model": "Range Rover Sport",
+ "Color": "Orange",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "2/22/2018",
+ "Amount": "5284.87"
+ }
+ ];
+});
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.css b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.css
new file mode 100644
index 0000000000..dd4453b8fb
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.css
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.html b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.html
new file mode 100644
index 0000000000..328c2a22d7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
+ Loading....
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.js b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.js
new file mode 100644
index 0000000000..b0a69dbba7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/index.js
@@ -0,0 +1,87 @@
+import Vue from 'vue';
+import { SpreadsheetPlugin } from '@syncfusion/ej2-vue-spreadsheet';
+import { getDefaultData } from './data.js';
+
+Vue.use(SpreadsheetPlugin);
+
+new Vue({
+ el: '#app',
+ template: `
+
+
+
+
+
+
+
+
+
+ `,
+ data() {
+ return {
+ defaultData: getDefaultData,
+ };
+ },
+ methods: {
+ onActionBegin(args) {
+ const action = args.action;
+ const eventArgs = args.args && args.args.eventArgs;
+
+ // Intercept "Replace All" before it runs
+ if (action === 'beforeReplaceAll' && eventArgs) {
+ const spreadsheet = this.$refs.spreadsheet && this.$refs.spreadsheet.ej2Instances;
+ if (!spreadsheet) return;
+
+ // Currently active sheet's selection (e.g., "A1:C5")
+ const selectedRange = spreadsheet.getActiveSheet().selectedRange;
+ if (!selectedRange) return;
+
+ // Build a collection of fully qualified addresses within the selection
+ const selectedRangeCollection = this.generateCellCollection(selectedRange, spreadsheet);
+
+ // Replace All event gives an addressCollection (array of "Sheet!A1" strings)
+ const replaceAllCollection = eventArgs.addressCollection;
+ if (!Array.isArray(replaceAllCollection)) return;
+
+ // Filter to only keep cells that fall inside the current selection
+ const selectedSet = new Set(selectedRangeCollection);
+ const updatedCollection = replaceAllCollection.map(cell =>
+ cell && selectedSet.has(cell) ? cell : null
+ );
+
+ if (updatedCollection.length > 0) {
+ // Overwrite the action's address collection so replace-all only affects selection
+ eventArgs.addressCollection = updatedCollection;
+ }
+ }
+ },
+
+ generateCellCollection(range, spreadsheet) {
+ const collection = [];
+
+ let [startCell, endCell] = range.split(':');
+ endCell = endCell || startCell;
+
+ const activeSheetName = spreadsheet.getActiveSheet().name;
+
+ const matchParts = (cellRef) => cellRef.match(/[A-Z]+|\d+/g) || [];
+ const [startCol, startRowStr] = matchParts(startCell);
+ const [endCol, endRowStr] = matchParts(endCell);
+
+ const colRange = [
+ startCol.toUpperCase().charCodeAt(0),
+ endCol.toUpperCase().charCodeAt(0),
+ ];
+ const rowRange = [parseInt(startRowStr, 10), parseInt(endRowStr, 10)];
+
+ for (let col = colRange[0]; col <= colRange[1]; col++) {
+ for (let row = rowRange[0]; row <= rowRange[1]; row++) {
+ collection.push(`${activeSheetName}!${String.fromCharCode(col)}${row}`);
+ }
+ }
+ return collection;
+ },
+ },
+});
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/systemjs.config.js b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/systemjs.config.js
new file mode 100644
index 0000000000..81ff07a381
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/find-and-replace-cs1/systemjs.config.js
@@ -0,0 +1,43 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/23.1.36/"
+ },
+ map: {
+ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js",
+vue: "https://unpkg.com/vue@2.6.14/dist/vue.min.js",
+ "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js",
+ "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js",
+ "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js",
+ "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js",
+ "@syncfusion/ej2-dropdowns":"syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js",
+ "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js",
+ "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js",
+ "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js",
+ "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js",
+ "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js",
+ "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js",
+ "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js",
+ "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js",
+ "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js",
+ "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js",
+ "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js",
+ "@syncfusion/ej2-vue-base": "syncfusion:ej2-vue-base/dist/ej2-vue-base.umd.min.js",
+ "@syncfusion/ej2-vue-spreadsheet": "syncfusion:ej2-vue-spreadsheet/dist/ej2-vue-spreadsheet.umd.min.js"
+ }
+});
+
+System.import('index.js');
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app-composition.vue b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app-composition.vue
new file mode 100644
index 0000000000..8c5ec4c433
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app-composition.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app.vue b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app.vue
new file mode 100644
index 0000000000..340ce3bd39
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/app.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/data.js b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/data.js
new file mode 100644
index 0000000000..d9ad57d0a7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/data.js
@@ -0,0 +1,238 @@
+define(["require", "exports"], function (require, exports) {
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.getDefaultData = [
+ {
+ "Customer Name": "Romona Heaslip",
+ "Model": "Taurus",
+ "Color": "Aquamarine",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "07/11/2015",
+ "Amount": "8529.22"
+ },
+ {
+ "Customer Name": "Clare Batterton",
+ "Model": "Sparrow",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "7/13/2016",
+ "Amount": "17866.19"
+ },
+ {
+ "Customer Name": "Eamon Traise",
+ "Model": "Grand Cherokee",
+ "Color": "Blue",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "09/04/2015",
+ "Amount": "13853.09"
+ },
+ {
+ "Customer Name": "Julius Gorner",
+ "Model": "GTO",
+ "Color": "Aquamarine",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/15/2017",
+ "Amount": "2338.74"
+ },
+ {
+ "Customer Name": "Jenna Schoolfield",
+ "Model": "LX",
+ "Color": "Yellow",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "10/08/2014",
+ "Amount": "9578.45"
+ },
+ {
+ "Customer Name": "Marylynne Harring",
+ "Model": "Catera",
+ "Color": "Green",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "7/01/2017",
+ "Amount": "19141.62"
+ },
+ {
+ "Customer Name": "Vilhelmina Leipelt",
+ "Model": "7 Series",
+ "Color": "Goldenrod",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/20/2015",
+ "Amount": "6543.30"
+ },
+ {
+ "Customer Name": "Barby Heisler",
+ "Model": "Corvette",
+ "Color": "Red",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "11/24/2014",
+ "Amount": "13035.06"
+ },
+ {
+ "Customer Name": "Karyn Boik",
+ "Model": "Regal",
+ "Color": "Indigo",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "05/12/2014",
+ "Amount": "18488.80"
+ },
+ {
+ "Customer Name": "Jeanette Pamplin",
+ "Model": "S4",
+ "Color": "Fuscia",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "12/30/2014",
+ "Amount": "12317.04"
+ },
+ {
+ "Customer Name": "Cristi Espinos",
+ "Model": "TL",
+ "Color": "Aquamarine",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "12/18/2013",
+ "Amount": "6230.13"
+ },
+ {
+ "Customer Name": "Issy Humm",
+ "Model": "Club Wagon",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "02/02/2015",
+ "Amount": "9709.49"
+ },
+ {
+ "Customer Name": "Tuesday Fautly",
+ "Model": "V8 Vantage",
+ "Color": "Crimson",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "11/19/2014",
+ "Amount": "9766.10"
+ },
+ {
+ "Customer Name": "Rosemaria Thomann",
+ "Model": "Caravan",
+ "Color": "Violet",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "02/08/2014",
+ "Amount": "7685.49"
+ },
+ {
+ "Customer Name": "Lyell Fuentez",
+ "Model": "Bravada",
+ "Color": "Violet",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "08/05/2016",
+ "Amount": "18012.45"
+ },
+ {
+ "Customer Name": "Raynell Layne",
+ "Model": "Colorado",
+ "Color": "Pink",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "05/30/2016",
+ "Amount": "2785.49"
+ },
+ {
+ "Customer Name": "Raye Whines",
+ "Model": "4Runner",
+ "Color": "Red",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "12/10/2016",
+ "Amount": "9967.74"
+ },
+ {
+ "Customer Name": "Virgina Aharoni",
+ "Model": "TSX",
+ "Color": "Pink",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "10/23/2014",
+ "Amount": "5584.33"
+ },
+ {
+ "Customer Name": "Peta Cheshir",
+ "Model": "Pathfinder",
+ "Color": "Red",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "12/24/2015",
+ "Amount": "5286.53"
+ },
+ {
+ "Customer Name": "Jule Urion",
+ "Model": "Charger",
+ "Color": "Violet",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "11/20/2013",
+ "Amount": "13511.91"
+ },
+ {
+ "Customer Name": "Lew Gilyatt",
+ "Model": "Bonneville",
+ "Color": "Crimson",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "11/19/2013",
+ "Amount": "6498.19"
+ },
+ {
+ "Customer Name": "Jobey Fortun",
+ "Model": "B-Series",
+ "Color": "Blue",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "10/30/2014",
+ "Amount": "10359.67"
+ },
+ {
+ "Customer Name": "Blondie Crump",
+ "Model": "Voyager",
+ "Color": "Turquoise",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "04/06/2018",
+ "Amount": "8118.39"
+ },
+ {
+ "Customer Name": "Florentia Binns",
+ "Model": "Grand Prix",
+ "Color": "Orange",
+ "Payment Mode": "Cash On Delivery",
+ "Delivery Date": "10/13/2016",
+ "Amount": "10204.37"
+ },
+ {
+ "Customer Name": "Jaquelin Galtone",
+ "Model": "Sunbird",
+ "Color": "Red",
+ "Payment Mode": "Net Banking",
+ "Delivery Date": "10/22/2013",
+ "Amount": "6528.06"
+ },
+ {
+ "Customer Name": "Hakeem Easseby",
+ "Model": "Mirage",
+ "Color": "Crimson",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "9/12/2014",
+ "Amount": "5619.25"
+ },
+ {
+ "Customer Name": "Nickolaus Gidman",
+ "Model": "XK",
+ "Color": "Orange",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "05/12/2016",
+ "Amount": "5091.43"
+ },
+ {
+ "Customer Name": "Jenine Iglesia",
+ "Model": "Accord",
+ "Color": "Orange",
+ "Payment Mode": "Debit Card",
+ "Delivery Date": "09/03/2018",
+ "Amount": "14566.08"
+ },
+ {
+ "Customer Name": "Fax Witherspoon",
+ "Model": "Range Rover Sport",
+ "Color": "Orange",
+ "Payment Mode": "Credit Card",
+ "Delivery Date": "2/22/2018",
+ "Amount": "5284.87"
+ }
+ ];
+});
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.css b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.css
new file mode 100644
index 0000000000..dd4453b8fb
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.css
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.html b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.html
new file mode 100644
index 0000000000..328c2a22d7
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
+ Loading....
+
+
+
+
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.js b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.js
new file mode 100644
index 0000000000..9f313d7388
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/index.js
@@ -0,0 +1,35 @@
+import Vue from 'vue';
+import { SpreadsheetPlugin } from '@syncfusion/ej2-vue-spreadsheet';
+import { getDefaultData } from './data.js';
+
+Vue.use(SpreadsheetPlugin);
+
+new Vue({
+ el: '#app',
+ template: `
+
+
+
+
+
+
+
+
+
+ `,
+ data() {
+ return {
+ defaultData: getDefaultData,
+ };
+ },
+ methods: {
+ onActionBegin(args) {
+ // Force paste to values only
+ if (args && args.action === 'clipboard' && args.args && args.args.eventArgs) {
+ args.args.eventArgs.type = 'Values';
+ }
+ },
+ },
+});
\ No newline at end of file
diff --git a/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/systemjs.config.js b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/systemjs.config.js
new file mode 100644
index 0000000000..81ff07a381
--- /dev/null
+++ b/Document-Processing/code-snippet/spreadsheet/vue/paste-values-cs1/systemjs.config.js
@@ -0,0 +1,43 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/23.1.36/"
+ },
+ map: {
+ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js",
+vue: "https://unpkg.com/vue@2.6.14/dist/vue.min.js",
+ "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js",
+ "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js",
+ "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js",
+ "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js",
+ "@syncfusion/ej2-dropdowns":"syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js",
+ "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js",
+ "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js",
+ "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js",
+ "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js",
+ "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js",
+ "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js",
+ "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js",
+ "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js",
+ "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js",
+ "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js",
+ "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js",
+ "@syncfusion/ej2-vue-base": "syncfusion:ej2-vue-base/dist/ej2-vue-base.umd.min.js",
+ "@syncfusion/ej2-vue-spreadsheet": "syncfusion:ej2-vue-spreadsheet/dist/ej2-vue-spreadsheet.umd.min.js"
+ }
+});
+
+System.import('index.js');