+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/index.js b/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/index.js
new file mode 100644
index 000000000..489a83241
--- /dev/null
+++ b/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/index.js
@@ -0,0 +1,48 @@
+
+import Vue from "vue";
+import { SpreadsheetPlugin } from "@syncfusion/ej2-vue-spreadsheet";
+import { data } from './data.js';
+Vue.use(SpreadsheetPlugin);
+
+
+new Vue({
+ el: '#app',
+ template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+
+ data: () => {
+ return {
+ dataSource: data,
+ openUrl: 'https://services.syncfusion.com/vue/production/api/spreadsheet/open',
+ saveUrl: 'https://services.syncfusion.com/vue/production/api/spreadsheet/save'
+ }
+ },
+ methods: {
+ beforeSave: function (args) {
+ args.needBlobData = true; // To trigger the saveComplete event.
+ args.isFullPost = false; // Get the spreadsheet data as blob data in the saveComplete event.
+ },
+ saveComplete: function (args) {
+ // To obtain blob data.
+ console.log("Spreadsheet BlobData: ", args.blobData);
+ }
+ }
+});
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/systemjs.config.js b/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/systemjs.config.js
new file mode 100644
index 000000000..c30a648e0
--- /dev/null
+++ b/ej2-vue/code-snippet/spreadsheet/save-as-blobdata-cs1/systemjs.config.js
@@ -0,0 +1,44 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/26.1.35/"
+ },
+ 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",
+ "@syncfusion/ej2-vue-buttons": "syncfusion:ej2-vue-buttons/dist/ej2-vue-buttons.umd.min.js"
+ }
+});
+
+System.import('index.js');
diff --git a/ej2-vue/pdfviewer/how-to/add-save-button.md b/ej2-vue/pdfviewer/how-to/add-save-button.md
new file mode 100644
index 000000000..9ef1b436a
--- /dev/null
+++ b/ej2-vue/pdfviewer/how-to/add-save-button.md
@@ -0,0 +1,265 @@
+---
+layout: post
+title: Add save button in Vue Pdfviewer component | Syncfusion
+description: Learn here all about how to add save button in Toolbar in Syncfusion Vue Pdfviewer component of Syncfusion Essential JS 2 and more.
+control: Toolbar
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Add Save button in Built-In Toolbar
+
+PDF Viewer allows you to customize(add, show, hide, enable, and disable) existing items in a toolbar.
+
+* Save button - `Save` button-item can defined by [**CustomToolbarItemModel**](https://ej2.syncfusion.com/vue/documentation/api/pdfviewer/customToolbarItemModel/) and with existing items in [**ToolbarSettings**](https://ej2.syncfusion.com/vue/documentation/api/pdfviewer/toolbarSettings/) property. Newly added `save` button-item click action can be defined in [`toolbarClick`](https://ej2.syncfusion.com/vue/documentation/api/toolbar/clickEventArgs/).
+
+* Show, Hide - `Save` button-item can be shown or hidden using the [`ToolbarSettings`](https://ej2.syncfusion.com/vue/documentation/api/pdfviewer/toolbarSettings/) property. Pre-defined toolbar items are available with [`ToolbarItem`](https://ej2.syncfusion.com/vue/documentation/api/pdfviewer/toolbarItem/).
+
+* Enable, Disable - `Save` button-item can be enabled or disable using [`enabletoolbaritem`].(https://ej2.syncfusion.com/vue/documentation/api/pdfviewer/toolbar/#enabletoolbaritem)
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (Standalone)" %}
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight html tabtitle="Options API (Standalone)" %}
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight html tabtitle="Composition API (Server-Backed)" %}
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight html tabtitle="Options API (Server-Backed)" %}
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+>Note : Default value of toolbar items is ['OpenOption', 'PageNavigationTool','MagnificationTool', 'PanTool', 'SelectionTool', 'SearchOption', 'PrintOption', 'DownloadOption','UndoRedoTool', 'AnnotationEditTool', 'FormDesignerEditTool', 'CommentTool', 'SubmitForm']
+
+### Align Property
+
+The align property is used to specify the alignment of a `save` button-item within the toolbar.
+
+`Left`: Aligns the item to the left side of the toolbar.
+`Right`: Aligns the item to the right side of the toolbar.
+
+### Tooltip Property
+
+The tooltip property is used to set the tooltip text for a `save` button-item. Tooltip provides additional information when a user hovers over the item.
+
+### CssClass Property
+
+The cssClass property is used to apply custom CSS classes to a `save` button-item. It allows custom styling of the toolbar item.
+
+### Prefix Property
+
+The prefix property is used to set the CSS class or icon that should be added as a prefix to the existing content of the toolbar item.
+
+### ID Property
+
+The id property within a CustomToolbarItemModel is a compulsory attribute that plays a vital role in toolbar customization. It serves as a unique identifier for each toolbar item, facilitating distinct references and interactions.
+
+When defining or customizing toolbar items, it is mandatory to assign a specific and descriptive id to each item.
+These properties are commonly used when defining custom toolbar items with the `CustomToolbarItemModel`` in the context of Syncfusion PDF Viewer. When configuring the toolbar using the `ToolbarSettings`` property, you can include these properties to customize the appearance and behavior of each toolbar item.
+
+N> When customizing `save` button-item, you have the flexibility to include either icons or text based on your design preference.
+
+[View sample in GitHub](https://github.com/SyncfusionExamples/vue-pdf-viewer-examples/tree/master/How%20to)
diff --git a/ej2-vue/pivotview/getting-started.md b/ej2-vue/pivotview/getting-started.md
index 5a54781f4..f51bf79b3 100644
--- a/ej2-vue/pivotview/getting-started.md
+++ b/ej2-vue/pivotview/getting-started.md
@@ -122,14 +122,15 @@ Follow the below steps to add the Vue Pivotview component:
1\. First, import and register the Pivotview component in the `script` section of the **src/App.vue** file.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
-
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -247,11 +248,17 @@ In-order to define each field in the respective axis, the following basic proper
In this illustration, "Year" and "Quarter" are added in column, "Country" and "Products" in row, and "Sold" and "Amount" in value section respectively.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs88/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs88/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -264,11 +271,17 @@ Formatting defines a way in which values should be displayed. For example, forma
> Only fields from value section, which is in the form of numeric data values are applicable for formatting.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs89/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs89/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -299,11 +312,17 @@ The field list allows to add or remove fields and also rearrange the fields betw
> If the `FieldList` module is not injected, the Field List will not be rendered with the pivot table component.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs90/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs90/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -316,11 +335,17 @@ The grouping bar feature automatically populates fields from the bound data sour
> If the `GroupingBar` module is not injected, the grouping bar will not be rendered with the pivot table component.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs91/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs91/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -331,11 +356,17 @@ The grouping bar feature automatically populates fields from the bound data sour
The filter axis contains collection of fields that would act as master filter over the data bound in row, column and value axes of the pivot table. The fields along with filter members could be set to filter axis either through report via code behind or by dragging and dropping fields from other axes to filter axis via grouping bar or field list at runtime.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs92/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs92/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -348,11 +379,17 @@ The calculated field feature allows user to insert or add a new calculated field
> If the `CalculatedField` module is not injected, the calculated field popup will not be rendered with the pivot table component. By default, the calculated fields created through code-behind are only added to the field list and calculated field dialog UI. To display the calculated field in the pivot table UI, it must be added to the [`values`](https://ej2.syncfusion.com/vue/documentation/api/pivotview/dataSourceSettings/#values) property, as shown in the code below. Additionally, calculated fields can only be added to the value axis.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue) %}
+{% highlight html tabtitle="Composition API (~/src/App.vue) %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs93/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs93/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
@@ -373,11 +410,17 @@ yarn run serve
Output will be displayed as follows.
{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs94/app-composition.vue %}
+
+{% endraw %}
{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}{% raw %}
+
{% include code-snippet/pivot-grid/default-cs94/app.vue %}
+
+{% endraw %}
{% endhighlight %}
{% endtabs %}
diff --git a/ej2-vue/spreadsheet/open-save.md b/ej2-vue/spreadsheet/open-save.md
index 98f027350..b8854570f 100644
--- a/ej2-vue/spreadsheet/open-save.md
+++ b/ej2-vue/spreadsheet/open-save.md
@@ -160,6 +160,78 @@ The following code example shows how to save the spreadsheet data as base64 stri
{% previewsample "page.domainurl/code-snippet/spreadsheet/base-64-string" %}
+### To open an Excel file located on a server
+
+By default, the Spreadsheet component provides an option to browse files from the local file system and open them within the component. If you want to load an Excel file located on a server, you need to configure the server endpoint to fetch the Excel file from the server location, process it using `Syncfusion.EJ2.Spreadsheet.AspNet.Core`, and send it back to the client side as `JSON data`. On the client side, you should use the [openFromJson](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/#openfromjson) method to load that `JSON data` into the Spreadsheet component.
+
+**Server Endpoint**:
+
+```csharp
+ public IActionResult Open([FromBody] FileOptions options)
+ {
+ OpenRequest open = new OpenRequest();
+ string filePath = _env.ContentRootPath.ToString() + "\\Files\\" + options.FileName + ".xlsx";
+ // Getting the file stream from the file path.
+ FileStream fileStream = new FileStream(filePath, FileMode.Open);
+ // Converting "MemoryStream" to "IFormFile".
+ IFormFile formFile = new FormFile(fileStream, 0, fileStream.Length, "", options.FileName + ".xlsx");
+ open.File = formFile;
+ // Processing the Excel file and return the workbook JSON.
+ var result = Workbook.Open(open);
+ fileStream.Close();
+ return Content(result);
+ }
+
+ public class FileOptions
+ {
+ public string FileName { get; set; } = string.Empty;
+ }
+```
+
+**Client Side**:
+
+```js
+
+ // Fetch call to server to load the Excel file.
+ fetch('https://localhost:{{Your port number}}/Home/Open', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({ FileName: 'Sample' }),
+ })
+ .then((response) => response.json())
+ .then((data) => {
+ // Load the JSON data into spreadsheet.
+ spreadsheet.openFromJson({ file: data });
+ })
+
+```
+
+You can find the server endpoint code to fetch and process the Excel file in this [attachment](https://www.syncfusion.com/downloads/support/directtrac/general/ze/WebApplication1_(1)-880363187). After launching the server endpoint, you need to update the URL on the client side sample as shown below.
+
+```js
+// To open an Excel file from the server.
+fetch('https://localhost:{port number}/Home/Open')
+```
+
+## To open an excel file from blob data
+
+By default, the Spreadsheet component provides an option to browse files from the local file system and open them within the component. If you want to open an Excel file from blob data, you need to fetch the blob data from the server or another source and convert this blob data into a `File` object. Then, you can use the [open](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/#open) method in the Spreadsheet component to load that `File` object.
+
+Please find the code to fetch the blob data and load it into the Spreadsheet component below.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/open-from-blobdata-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/open-from-blobdata-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/spreadsheet/open-from-blobdata-cs1" %}
+
### External workbook confirmation dialog
When you open an excel file that contains external workbook references, you will see a confirmation dialog. This dialog allows you to either continue with the file opening or cancel the operation. This confirmation dialog will appear only if you set the `AllowExternalWorkbook` property value to **false** during the open request, as shown below. This prevents the spreadsheet from displaying inconsistent data.
@@ -342,6 +414,92 @@ The following code example shows how to save the spreadsheet data as base64 stri
{% previewsample "page.domainurl/code-snippet/spreadsheet/base-64-string" %}
+
+### To save an Excel file to a server
+
+By default, the Spreadsheet component saves the Excel file and downloads it to the local file system. If you want to save an Excel file to a server location, you need to configure the server endpoint to convert the spreadsheet data into a file stream and save it to the server location. To do this, first, on the client side, you must convert the spreadsheet data into `JSON` format using the [saveAsJson](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/#saveasjson) method and send it to the server endpoint. On the server endpoint, you should convert the received spreadsheet `JSON` data into a file stream using `Syncfusion.EJ2.Spreadsheet.AspNet.Core`, then convert the stream into an Excel file, and finally save it to the server location.
+
+**Client Side**:
+
+```js
+
+ // Convert the spreadsheet workbook to JSON data.
+ spreadsheet.saveAsJson().then((json) => {
+ const formData = new FormData();
+ formData.append('FileName', "Sample");
+ formData.append('saveType', 'Xlsx');
+ // Passing the JSON data to perform the save operation.
+ formData.append('JSONData', JSON.stringify(json.jsonObject.Workbook));
+ formData.append('PdfLayoutSettings', JSON.stringify({ FitSheetOnOnePage: false }));
+ // Using fetch to invoke the save process.
+ fetch('https://localhost:{{Your port number}}/Home/Save', {
+ method: 'POST',
+ body: formData
+ }).then((response) => {
+ console.log(response);
+ });
+ });
+
+```
+
+**Server Endpoint**:
+
+```csharp
+
+ public string Save(SaveSettings saveSettings)
+ {
+ ExcelEngine excelEngine = new ExcelEngine();
+ IApplication application = excelEngine.Excel;
+ try
+ {
+
+ // Save the workbook as stream.
+ Stream fileStream = Workbook.Save(saveSettings);
+ // Using XLSIO, we are opening the file stream and saving the file in the server under "Files" folder.
+ // You can also save the stream file in your server location.
+ IWorkbook workbook = application.Workbooks.Open(fileStream);
+ string basePath = _env.ContentRootPath + "\\Files\\" + saveSettings.FileName + ".xlsx";
+ var file = System.IO.File.Create(basePath);
+ fileStream.Seek(0, SeekOrigin.Begin);
+ // To convert the stream to file options.
+ fileStream.CopyTo(file);
+ file.Dispose();
+ fileStream.Dispose();
+ return string.Empty;
+ }
+ catch (Exception ex)
+ {
+ return ex.Message;
+ }
+ }
+
+```
+
+You can find the server endpoint code to save the spreadsheet data as an Excel file in this [attachment](https://www.syncfusion.com/downloads/support/directtrac/general/ze/WebApplication1_(1)-880363187). After launching the server endpoint, you need to update the URL on the client side sample as shown below.
+
+```js
+//To save an Excel file to the server.
+fetch('https://localhost:{port number}/Home/Save')
+```
+
+### To save an excel file as blob data
+
+By default, the Spreadsheet component saves the Excel file and downloads it to the local file system. If you want to save an Excel file as blob data, you need to set `needBlobData` property to **true** and `isFullPost` property to **false** in the [beforeSave](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/#beforesave) event of the spreadsheet. Subsequently, you will receive the spreadsheet data as a blob in the [saveComplete](https://ej2.syncfusion.com/vue/documentation/api/spreadsheet/#savecomplete) event. You can then post the blob data to the server endpoint for saving.
+
+Please find below the code to retrieve blob data from the Spreadsheet component below.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/save-as-blobdata-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/spreadsheet/save-as-blobdata-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/spreadsheet/save-as-blobdata-cs1" %}
+
+
### Supported file formats
The following list of Excel file formats are supported in Spreadsheet: