Range object
In Excel COM the range object exposes two dimensional array that can be used to create json quickly. In this article I will cover, how you can transpose entire selected range into an array and get a handy json.
This example covers Excel Addin which is VSTO (Visual studio tools for office) C# technology, however no need to surprise as I have plenty of examples where you can understand how you can create your own Excel Addin using C# Visual Studio
Code example
private string ConvertExcelRangeToJson() { //retain active row selection excel.Range oRange = Globals.ThisAddIn.Application.Selection; //Convert range into two dimentional object arry object[,] valueArrayObjects=((object[,])oRange.Value2); //Create Javascript object JavaScriptSerializer jsObjectSerializer = new JavaScriptSerializer(); //to minimize memory heap issue jsObjectSerializer.MaxJsonLength = Int32.MaxValue; //Finally serialize json into a string return jsObjectSerializer.Serialize(valueArrayObjects); }
Above code we have used oRange object which will retain user selection and creates a Range. Then we are transforming our range into two dimensional object which will populate array. Finally the array will go to Serialize method of JavaScriptSerializer class which can be extended from System.Web.Extenstions class
If I make selection for given data in excel, the code gives me output as given in next screenshot:

Josn output

Next >> Link Cell value to Sheet Header/Footer with example