Articles in this section
Category / Section

How to save and retrieve the Spreadsheet data as JSON in database for JS application?

4 mins read

Description

This knowledge base explains the way to save and retrieve the Spreadsheet data as JSON in Database.

Solution

You can use “loadFromJSON()” and “saveAsJSON()” client side methods to achieve this requirement.

 

JavaScript

 

[JS]

 

    <div style="margin: 7px;">
        <!--  Save Spreadsheet data to database -->
        <input type="text" id="saveFileName" />
        <input type="button" value="Save" id="saveFileToDatabase" />
        <!--  Open Spreadsheet data from database -->
        <select id="importFileName">
            <!-- Existing saved files -->
            <option value="file1">File 1</option>
            <option value="file2">File 2</option>
        </select>
        <input type="button" value="Import" id="openFileFromDatabase" />
    </div>
    <div id="Spreadsheet"></div>
 
    <script>
         $(function () {
            $("#Spreadsheet").ejSpreadsheet({
                scrollSettings: {
                    height: "100%",
                    width: "100%"
                }
            });
        });
 
        $("#saveFileToDatabase").bind("click", function () {
            var xlObj = $("#Spreadsheet").data("ejSpreadsheet"), jsonData = xlObj.saveAsJSON(), filename = $("#saveFileName").val(); 
            $.ajax({
                type: "POST",
                data: { fileName: filename, jsonData: JSON.stringify(jsonData) },
                url: "/Spreadsheet/SaveFiletoDB",
                success: function (data) {
                    // Success code here.
                }
            });
 
 
        $("#openFileFromDatabase").bind("click", function () {
            var xlObj = $("#Spreadsheet").data("ejSpreadsheet"), fileName = $("#importFileName").val();
            if (fileName.length) {
                xlObj.showWaitingPopUp();
                $.ajax({
                    type: "POST",
                    url: "/Spreadsheet/OpenFileFromDB",
                    data: { filename: fileName },
                    success: function (data) {
                        xlObj.loadFromJSON(JSON.parse(data));
                        xlObj.hideWaitingPopUp();
                    }
                });
            }
        });
        });
    </script>
 

 

 [Web API]

 

 
        string connectionString = ConfigurationManager.ConnectionStrings["FileData"].ConnectionString;
        [OperationContract]
        [WebGet(BodyStyle = WebMessageBodyStyle.Bare)]
        [System.Web.Http.ActionName("SaveFiletoDB")]
        [AcceptVerbs("POST")]
       // Save the Spreadsheet data as JSON to database
        public void SaveFiletoDB()
        {
            string fileName = HttpContext.Current.Request.Params["fileName"], jsonData = HttpContext.Current.Request.Params["jsonData"];
            try
            {
                if (fileName.Length > 0)
                {
                    SqlConnection sqlCon = new SqlConnection(connectionString);
                    sqlCon.Open();
                    SqlCommand sqlComm = new SqlCommand("INSERT INTO [dbo].[Table]([FileName], [FileData]) VALUES (@FileName, @FileData)", sqlCon);
                    sqlComm.Parameters.AddWithValue("@FileName", fileName);
                    sqlComm.Parameters.AddWithValue("@FileData", jsonData);
                    sqlComm.ExecuteNonQuery();
                    sqlCon.Close();
                }
             }
            catch (Exception e)
            {
                // Error handling code here.
            }
         } 
 
        //Open Saved Spreadsheet data from database
        [OperationContract]
        [WebGet(BodyStyle = WebMessageBodyStyle.Bare)]
        [System.Web.Http.ActionName("OpenFileFromDB")]
        [AcceptVerbs("POST")]
        public string OpenFileFromDB()
        {
            string filename = HttpContext.Current.Request.Params["filename"];
            ImportRequest importRequest = new ImportRequest();
            SqlConnection sqlCon = new SqlConnection(connectionString);
            SqlCommand sqlComm = new SqlCommand("SELECT * FROM [dbo].[Table] WHERE [FileName] = '" + filename + "'", sqlCon);
            string JsonData = string.Empty;
            sqlCon.Open();
            SqlDataReader sqlDR = sqlComm.ExecuteReader();
            if (sqlDR.Read())
            {
                // Retrieve JSON from database
                JsonData = (string)sqlDR.GetValue(1);
            }
            sqlCon.Close();
            return JsonData;
        }
 

 

 

MVC

 

[CSHTML]

 

   <div style="margin: 7px;">
        <!--  Save Spreadsheet data to database -->
        <input type="text" id="saveFileName" />
        <input type="button" value="Save" id="saveFileToDatabase" />
        <!--  Open Spreadsheet data from database -->
         @Html.DropDownList("importFileName", ViewBag.FileNameList as List<SelectListItem>)
        <input type="button" value="Import" id="openFileFromDatabase" />
    </div>
 
<div style="height:550px;">
  @(Html.EJ().Spreadsheet<object>("Spreadsheet")
    .ScrollSettings(scroll =>
    {
        scroll.Height("100%");
        scroll.Width("100%");
    })
  )
    </div>
</div>
<script>
        $("#saveFileToDatabase").bind("click", function () {
            var xlObj = $("#Spreadsheet").data("ejSpreadsheet"), jsonData = xlObj.saveAsJSON(), filename = $("#saveFileName").val();
            $.ajax({
                type: "POST",
                data: { fileName: filename, jsonData: JSON.stringify(jsonData) },
                url: "/Home/SaveFiletoDB",
                success: function (data) {
                    // Success code here.            
                }
            });
 
        $("#openFileFromDatabase").bind("click", function () {
            var xlObj = $("#Spreadsheet").data("ejSpreadsheet"), fileName = $("#importFileName").val();
            if (fileName.length) {
                xlObj.showWaitingPopUp();
                $.ajax({
                    type: "POST",
                    data: { filename: fileName },
                    url: "/Home/OpenFileFromDB",
                    success: function (data) {
                        xlObj.loadFromJSON(JSON.parse(data));
                        xlObj.hideWaitingPopUp();
                        $("#saveFileName").val(fileName);
                    }
                });
            }
        });
 
        });
</script>

 

[Controller]

 

        string connectionString = ConfigurationManager.ConnectionStrings["FileData"].ConnectionString;      
        // Save the Spreadsheet data as JSON to database.
        [AcceptVerbs(HttpVerbs.Post)]
        public void SaveFiletoDB(string fileName, string jsonData)
        {
            try
            {
                if (fileName.Length > 0)
                {
                    SqlConnection sqlCon = new SqlConnection(connectionString);
                    sqlCon.Open();
                    SqlCommand sqlComm = new SqlCommand("INSERT INTO [dbo].[Table]([FileName], [FileData]) VALUES (@FileName, @FileData)", sqlCon);
                    sqlComm.Parameters.AddWithValue("@FileName", fileName);
                    sqlComm.Parameters.AddWithValue("@FileData", jsonData);
                    sqlComm.ExecuteNonQuery();
                    sqlCon.Close();
                }
            }
            catch (Exception e)
            {
                //Error handling code here.
            }
        } 
 
        //Open saved Spreadsheet data from database
        [AcceptVerbs(HttpVerbs.Post)]
        public string OpenFileFromDB(string filename)
        {
            ImportRequest importRequest = new ImportRequest();
            SqlConnection sqlCon = new SqlConnection(connectionString);
            SqlCommand sqlComm = new SqlCommand("SELECT * FROM [dbo].[Table] WHERE [FileName] = '" + filename + "'", sqlCon);
            string JsonData = string.Empty;
            sqlCon.Open();
            SqlDataReader sqlDR = sqlComm.ExecuteReader();
            if (sqlDR.Read())
            {
                // Retrieve JSON from database
                JsonData = (string)sqlDR.GetValue(1);
            }
            sqlCon.Close();
            return JsonData;
        }
 

 

 

ASP

 

[ASPX]

 

   <div style="margin: 7px;">
        <!--  Save Spreadsheet data to database -->
        <input type="text" id="saveFileName" />
        <input type="button" value="Save" id="saveFileToDatabase" />
        <!--  Open Spreadsheet data from database -->
         <asp:DropDownList ID="importFileName" runat="server" Height='30px' Width='150px' DataTextField="Text"></asp:DropDownList>
        <input type="button" value="Import" id="openFileFromDatabase" />
    </div>
 
    <ej:Spreadsheet ID="Spreadsheet" runat='server'>
            <ScrollSettings Width="100%" Height="100%" />
    </ej:Spreadsheet>
 
<script>
        // Save the Spreadsheet data as JSON to database.
        $("#saveSpreadsheetToDatabase").bind("click", function () {
            var xlObj = $("#MainContent_Spreadsheet").data("ejSpreadsheet"), fileName = $("#saveFileName").val(), jsonData = JSON.stringify(xlObj.saveAsJSON());
            $.ajax({
                type: "POST",
                url: "SpreadsheetFeatures.aspx/SaveSpreadsheetToDB",
                data: JSON.stringify({ fileName: fileName, jsonData: jsonData }),
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                success: function (data) {
                    // Success code here.
                }
            });
        });
        // Open the saved Spreadsheet data from database.
        $("#openFileFromDatabase").bind("click", function () {
            var xlObj = $("#MainContent_Spreadsheet").data("ejSpreadsheet"), fileName = $("#MainContent_ImportFileName").val();
            xlObj.showWaitingPopUp();
            $.ajax({
                type: "POST",
                url: "SpreadsheetFeatures.aspx/OpenSpreadsheetFromDB",
                data: JSON.stringify({ filename: fileName }),
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                success: function (data) {
                    xlObj.loadFromJSON(JSON.parse(data.d));
                    xlObj.hideWaitingPopUp();
                }
            });
        });
</script>

 

[C#]

 

        string connectionString = ConfigurationManager.ConnectionStrings["FileData"].ConnectionString;  
        // Save the Spreadsheet data as JSON to database.
        [WebMethod]
        public static void SaveSpreadsheetToDB(string fileName, string jsonData)
        {
            try
            {
                if (fileName.Length > 0)
                {
                    SqlConnection sqlCon = new SqlConnection(connetionString);
                    sqlCon.Open();
                    SqlCommand sqlComm = new SqlCommand("INSERT INTO [dbo].[Table]([FileName], [FileData]) VALUES (@FileName, @FileData)", sqlCon);
                    sqlComm.Parameters.AddWithValue("@FileName", fileName);
                    sqlComm.Parameters.AddWithValue("@FileData", jsonData);
                    sqlComm.ExecuteNonQuery();
                    sqlCon.Close();
                }
            }
            catch (Exception e)
            {
                // Error handling code here.
            }
        } 
 
        //Open saved Spreadsheet data from database
        [WebMethod]
        public static string OpenSpreadsheetFromDB(string filename)
        {
            SqlConnection sqlCon = new SqlConnection(connectionString);
            SqlCommand sqlComm = new SqlCommand("SELECT * FROM [dbo].[Table] WHERE [FileName] = '" + filename + "'", sqlCon);
            string JsonData = string.Empty;
            sqlCon.Open();
            SqlDataReader sqlDR = sqlComm.ExecuteReader();
            if (sqlDR.Read())
            {
                // Retrieve JSON from database
                JsonData = (string)sqlDR.GetValue(1);
            }
            sqlCon.Close();
            return JsonData;
        }

Also please refer the below UG Documentation link,

 

https://help.syncfusion.com/api/js/ejspreadsheet#methods:saveasjson

https://help.syncfusion.com/api/js/ejspreadsheet#methods:loadfromjson

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments
Please sign in to leave a comment
Access denied
Access denied