Worksheet in ASP.NET MVC Spreadsheet control
24 Jul 202624 minutes to read
Worksheet is a collection of cells organized in the form of rows and columns that allows you to store, format, and manipulate the data.
Add sheet
You can add or insert a worksheet in one of the following ways:
- Select Add Sheet on the sheet tab bar to add an empty worksheet next to the active worksheet.
- Right-click a sheet tab and choose Insert from the context menu to insert an empty worksheet before the active worksheet.
- Use the
insertSheet()method to insert one or more worksheets at a specified index.
The following code example shows the insert sheet operation in spreadsheet.
@Html.EJS().Spreadsheet("spreadsheet").ShowRibbon(false).ShowFormulaBar(false).Created("created").Sheets(sheet =>
{
sheet.Name("Shipment Details").Ranges(ranges =>
{
ranges.DataSource((IEnumerable<object>)ViewBag.DefaultData).Add();
}).Columns(column =>
{
column.Width(130).Add();
column.Width(220).Add();
column.Width(90).Add();
column.Width(140).Add();
column.Width(90).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
}).Render()
<script>
function created() {
// Applies style formatting to the active sheet before inserting a new sheet
this.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1');
this.cellFormat({ textAlign: 'center' }, 'D2:H11');
// inserting a new sheet with data at 1st index
// You can also insert empty sheets by specifying the start and end sheet index instead of sheet model
this.insertSheet([{
index: 1,
name: 'Inserted Sheet',
ranges: [{ dataSource: @Html.Raw(JsonConvert.SerializeObject(@ViewBag.DefaultData)) }],
columns: [{ width: 150 }, { width: 110 }, { width: 110 }, { width: 85 }, { width: 85 }, { width: 85 }, { width: 85 },
{ width: 85 }]
}]);
// Applies style formatting for the inserted sheet
this.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'Inserted Sheet!A1:H1');
this.cellFormat({ textAlign: 'center' }, 'Inserted Sheet!D2:H15');
}
</script>public ActionResult Index()
{
List<object> data = new List<object>()
{
new { CustomerName= "Romona Heaslip", Model= "Taurus", Color= "Aquamarine", PaymentMode= "Debit Card", DeliveryDate= "07/11/2015", Amount= "8529.22" },
new { CustomerName= "Clare Batterton", Model= "Sparrow", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "7/13/2016", Amount= "17866.19" },
new { CustomerName= "Eamon Traise", Model= "Grand Cherokee", Color= "Blue", PaymentMode= "Net Banking", DeliveryDate= "09/04/2015", Amount= "13853.09" },
new { CustomerName= "Julius Gorner", Model= "GTO", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/15/2017", Amount= "2338.74" },
new { CustomerName= "Jenna Schoolfield", Model= "LX", Color= "Yellow", PaymentMode= "Credit Card", DeliveryDate= "10/08/2014", Amount= "9578.45" },
new { CustomerName= "Marylynne Harring", Model= "Catera", Color= "Green", PaymentMode= "Cash On Delivery", DeliveryDate= "7/01/2017", Amount= "19141.62" },
new { CustomerName= "Vilhelmina Leipelt", Model= "7 Series", Color= "Goldenrod", PaymentMode= "Credit Card", DeliveryDate= "12/20/2015", Amount= "6543.30" },
new { CustomerName= "Barby Heisler", Model= "Corvette", Color= "Red", PaymentMode= "Credit Card", DeliveryDate= "11/24/2014", Amount= "13035.06" },
new { CustomerName= "Karyn Boik", Model= "Regal", Color= "Indigo", PaymentMode= "Debit Card", DeliveryDate= "05/12/2014", Amount= "18488.80" },
new { CustomerName= "Jeanette Pamplin", Model= "S4", Color= "Fuscia", PaymentMode= "Net Banking", DeliveryDate= "12/30/2014", Amount= "12317.04" },
new { CustomerName= "Cristi Espinos", Model= "TL", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/18/2013", Amount= "6230.13" },
new { CustomerName= "Issy Humm", Model= "Club Wagon", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "02/02/2015", Amount= "9709.49" },
new { CustomerName= "Tuesday Fautly", Model= "V8 Vantage", Color= "Crimson", PaymentMode= "Debit Card", DeliveryDate= "11/19/2014", Amount= "9766.10" },
new { CustomerName= "Rosemaria Thomann", Model= "Caravan", Color= "Violet", PaymentMode= "Net Banking", DeliveryDate= "02/08/2014", Amount= "7685.49" },
};
ViewBag.DefaultData = data;
return View();
}Insert a sheet programmatically and make it active sheet
Use the insertSheet() method to insert one or more worksheets at the required index. After inserting a sheet, use the goTo() method to focus its first cell and make it the active worksheet.
The following code example shows how to insert a sheet programmatically and make it the active sheet.
@Html.EJS().Button("insertSheet").Content("Insert Sheet").Render()
@Html.EJS().Spreadsheet("spreadsheet").Sheets(sheet => {
sheet.Name("Price Details").Ranges(ranges => {
ranges.DataSource((IEnumerable < object >)ViewBag.DefaultData).StartCell("A1").Add();
}).Columns(column => {
column.Width(130).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
}).Render()
<script>
document.getElementById("insertSheet").addEventListener('click', function () {
var spreadsheetObj = document.getElementById("spreadsheet").ej2_instances[0];
spreadsheetObj.insertSheet(
[
{
index: 1,
name: 'new_sheet',
ranges: [
{
dataSource: ViewBag.ProductData,
startCell: 'A1'
},
]
},
]
);
// Use the timeout function to wait until the sheet is inserted.
setTimeout(() => {
// Method for switching to a new sheet.
spreadsheetObj.goTo('new_sheet!A1');
})
});
</script>public ActionResult Index()
{
List<object> defaultData = new List<object>()
{
new { ItemName= "Casual Shoes", Date= "02/14/2014", Time= "11:34:32 AM", Quantity= "10", Price= "20", Amount= "200", Discount= "1", Profit= "10" },
new { ItemName= "Sports Shoes", Date= "06/11/2014", Time= "05:56:32 AM", Quantity= "20", Price= "30", Amount= "600", Discount= "5", Profit= "50" },
new { ItemName= "Formal Shoes", Date= "07/27/2014", Time= "03:32:44 AM", Quantity= "20", Price= "15", Amount= "300", Discount= "7", Profit= "27" },
new { ItemName= "Sandals & Floaters", Date= "11/21/2014", Time= "06:23:54 AM", Quantity= "15", Price= "20", Amount= "300", Discount= "11", Profit= "67" },
new { ItemName= "Flip- Flops & Slippers", Date= "06/23/2014", Time= "12:43:59 AM", Quantity= "30", Price= "10", Amount= "300", Discount= "10", Profit= "70" },
new { ItemName= "Sneakers", Date= "07/22/2014", Time= "10:55:53 AM", Quantity= "40", Price= "20", Amount= "800", Discount= "13", Profit= "66" },
new { ItemName= "Running Shoes", Date= "02/04/2014", Time= "03:44:34 AM", Quantity= "20", Price= "10", Amount= "200", Discount= "3", Profit= "14" },
new { ItemName= "Loafers", Date= "11/30/2014", Time= "03:12:52 AM", Quantity= "31", Price= "10", Amount= "310", Discount= "6", Profit= "29" },
new { ItemName= "Cricket Shoes", Date= "07/09/2014", Time= "11:32:14 AM", Quantity= "41", Price= "30", Amount= "1210", Discount= "12", Profit= "166" },
new { ItemName= "T-Shirts", Date= "10/31/2014", Time= "12:01:44 AM", Quantity= "50", Price= "10", Amount= "500", Discount= "9", Profit= "55" }
};
ViewBag.DefaultData = defaultData;
List<object> data = new List<object>()
{
new { ProductId= "1", ProductName= "Chai", SupplierId= "1", QuantityPerUnit= "10 boxes x 20 bags", UnitPrice= "18.00", UnitsInStock= "39", Discontinued= "false" },
new { ProductId= "2", ProductName= "Chang", SupplierId= "1", QuantityPerUnit= "24 - 12 oz bottles", UnitPrice= "19.00", UnitsInStock= "17", Discontinued= "true" },
new { ProductId= "3", ProductName= "Aniseed Syrup", SupplierId= "1", QuantityPerUnit= "12 - 550 ml bottles", UnitPrice= "10.00", UnitsInStock= "13", Discontinued= "false" },
new { ProductId= "4", ProductName= "Chef Anton\'s Cajun Seasoning", SupplierId= "2", QuantityPerUnit= "48 - 6 oz jars", UnitPrice= "22.00", UnitsInStock= "53", Discontinued= "true" },
new { ProductId= "5", ProductName= "Chef Anton\'s Gumbo Mix", SupplierId= "2", QuantityPerUnit= "36 boxes', 'Unit Price", UnitPrice= "21.35", UnitsInStock= "0", Discontinued= "true" },
new { ProductId= "6", ProductName= "Grandma\'s Boysenberry Spread", SupplierId= "3", QuantityPerUnit= "12 - 8 oz jars", UnitPrice= "25.00", UnitsInStock= "120", Discontinued= "false" },
new { ProductId= "7", ProductName= "Uncle Bob\'s Organic Dried Pears", SupplierId= "3", QuantityPerUnit= "12 - 1 lb pkgs.", UnitPrice= "30.00", UnitsInStock= "15", Discontinued= "true" },
new { ProductId= "10", ProductName= "Queso Cabrales", SupplierId= "5", QuantityPerUnit= "1 kg pkg.", UnitPrice= "21.00", UnitsInStock= "22", Discontinued= "false" },
};
ViewBag.ProductData = data;
return View();
}Delete sheet
You can delete an existing worksheet in one of the following ways:
- Right-click the sheet tab and choose Delete from the context menu.
- Use the appropriate delete method to remove a worksheet programmatically.
Rename sheet
- To rename a worksheet, right-click its sheet tab and choose Rename from the context menu.
Headers
By default, the row and column headers are visible in worksheets. You can dynamically show or hide worksheet headers by using one of the following ways,
- Switch to
Viewtab, and then selectHide Headersoption to hide both the row and column headers. - Set
showHeadersproperty insheetsastrueorfalseto show or hide the headers at initial load. By default, theshowHeadersproperty is enabled in each worksheet.
NOTE
The default value of the
showHeadersproperty istrue.
Gridlines
Gridlines are visual separators that help distinguish cells in a worksheet.You can show or hide gridlines in one of the following ways:
- Switch to
Viewtab, and then selectHide Gridlinesoption to hide the gridlines in worksheet. - Set
showGridLinesproperty insheetsastrueorfalseto show or hide the gridlines at initial load. By default, theshowGridLinesproperty is enabled in each worksheet.
NOTE
The default value of the
showGridLinesproperty istrue.
The following code example shows the headers and gridlines operation in spreadsheet.
@Html.EJS().Spreadsheet("spreadsheet").ShowFormulaBar(false).Created("created").Sheets(sheet =>
{
sheet.Name("Shipment Details").ShowGridLines(false).ShowHeaders(false).Ranges(ranges =>
{
ranges.DataSource((IEnumerable<object>)ViewBag.DefaultData).Add();
}).Columns(column =>
{
column.Width(130).Add();
column.Width(220).Add();
column.Width(90).Add();
column.Width(140).Add();
column.Width(90).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
}).Render()
<script>
function created() {
this.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1');
this.cellFormat({ textAlign: 'center' }, 'D2:H15');
// The gridlines have been removed to set border for the range of cells
this.setBorder({ border: '1px solid #e0e0e0' }, 'A1:H15');
}
</script>public ActionResult Index()
{
List<object> data = new List<object>()
{
new { CustomerName= "Romona Heaslip", Model= "Taurus", Color= "Aquamarine", PaymentMode= "Debit Card", DeliveryDate= "07/11/2015", Amount= "8529.22" },
new { CustomerName= "Clare Batterton", Model= "Sparrow", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "7/13/2016", Amount= "17866.19" },
new { CustomerName= "Eamon Traise", Model= "Grand Cherokee", Color= "Blue", PaymentMode= "Net Banking", DeliveryDate= "09/04/2015", Amount= "13853.09" },
new { CustomerName= "Julius Gorner", Model= "GTO", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/15/2017", Amount= "2338.74" },
new { CustomerName= "Jenna Schoolfield", Model= "LX", Color= "Yellow", PaymentMode= "Credit Card", DeliveryDate= "10/08/2014", Amount= "9578.45" },
new { CustomerName= "Marylynne Harring", Model= "Catera", Color= "Green", PaymentMode= "Cash On Delivery", DeliveryDate= "7/01/2017", Amount= "19141.62" },
new { CustomerName= "Vilhelmina Leipelt", Model= "7 Series", Color= "Goldenrod", PaymentMode= "Credit Card", DeliveryDate= "12/20/2015", Amount= "6543.30" },
new { CustomerName= "Barby Heisler", Model= "Corvette", Color= "Red", PaymentMode= "Credit Card", DeliveryDate= "11/24/2014", Amount= "13035.06" },
new { CustomerName= "Karyn Boik", Model= "Regal", Color= "Indigo", PaymentMode= "Debit Card", DeliveryDate= "05/12/2014", Amount= "18488.80" },
new { CustomerName= "Jeanette Pamplin", Model= "S4", Color= "Fuscia", PaymentMode= "Net Banking", DeliveryDate= "12/30/2014", Amount= "12317.04" },
new { CustomerName= "Cristi Espinos", Model= "TL", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/18/2013", Amount= "6230.13" },
new { CustomerName= "Issy Humm", Model= "Club Wagon", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "02/02/2015", Amount= "9709.49" },
new { CustomerName= "Tuesday Fautly", Model= "V8 Vantage", Color= "Crimson", PaymentMode= "Debit Card", DeliveryDate= "11/19/2014", Amount= "9766.10" },
new { CustomerName= "Rosemaria Thomann", Model= "Caravan", Color= "Violet", PaymentMode= "Net Banking", DeliveryDate= "02/08/2014", Amount= "7685.49" },
};
ViewBag.DefaultData = data;
return View();
}Sheet visibility
Hiding a worksheet can help prevent unauthorized or accidental changes to your file.
The Spreadsheet provides three worksheet visibility states, similar to Microsoft Excel:
| State | Description |
|---|---|
Visible |
The worksheet is visible when the Spreadsheet is loaded. |
Hidden |
The worksheet is hidden but can be displayed by selecting it from the List All Sheets drop-down menu. |
VeryHidden |
The worksheet is hidden and cannot be displayed through the user interface. Set its state property to Visible to display it. |
The following code example shows the three types of sheet visibility state.
@Html.EJS().Spreadsheet("spreadsheet").ShowFormulaBar(false).Created("created").Sheets(sheet =>
{
sheet.Name("Visible Sheet").State(SheetState.Visible).Ranges(ranges =>
{
ranges.DataSource((IEnumerable<object>)ViewBag.DefaultData).Add();
}).Columns(column =>
{
column.Width(130).Add();
column.Width(220).Add();
column.Width(90).Add();
column.Width(140).Add();
column.Width(90).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
sheet.Name("Very Hidden Sheet").State(SheetState.VeryHidden).Ranges(ranges =>
{
ranges.DataSource((IEnumerable<object>)ViewBag.DefaultData).Add();
}).Columns(column =>
{
column.Width(130).Add();
column.Width(220).Add();
column.Width(90).Add();
column.Width(140).Add();
column.Width(90).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
sheet.Name("Hidden Sheet").State(SheetState.Hidden).Ranges(ranges =>
{
ranges.DataSource((IEnumerable<object>)ViewBag.DefaultData).Add();
}).Columns(column =>
{
column.Width(130).Add();
column.Width(220).Add();
column.Width(90).Add();
column.Width(140).Add();
column.Width(90).Add();
column.Width(100).Add();
column.Width(100).Add();
}).Add();
}).Render()
<script>
function created() {
// Applies style formatting to active visible sheet
this.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1');
this.cellFormat({ textAlign: 'center' }, 'D2:H11');
// Applies style formatting to active hidden sheet
this.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'Hidden Sheet!A1:H1');
this.cellFormat({ textAlign: 'center' }, 'Hidden Sheet!D2:H15');
}
</script>public ActionResult Index()
{
List<object> data = new List<object>()
{
new { CustomerName= "Romona Heaslip", Model= "Taurus", Color= "Aquamarine", PaymentMode= "Debit Card", DeliveryDate= "07/11/2015", Amount= "8529.22" },
new { CustomerName= "Clare Batterton", Model= "Sparrow", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "7/13/2016", Amount= "17866.19" },
new { CustomerName= "Eamon Traise", Model= "Grand Cherokee", Color= "Blue", PaymentMode= "Net Banking", DeliveryDate= "09/04/2015", Amount= "13853.09" },
new { CustomerName= "Julius Gorner", Model= "GTO", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/15/2017", Amount= "2338.74" },
new { CustomerName= "Jenna Schoolfield", Model= "LX", Color= "Yellow", PaymentMode= "Credit Card", DeliveryDate= "10/08/2014", Amount= "9578.45" },
new { CustomerName= "Marylynne Harring", Model= "Catera", Color= "Green", PaymentMode= "Cash On Delivery", DeliveryDate= "7/01/2017", Amount= "19141.62" },
new { CustomerName= "Vilhelmina Leipelt", Model= "7 Series", Color= "Goldenrod", PaymentMode= "Credit Card", DeliveryDate= "12/20/2015", Amount= "6543.30" },
new { CustomerName= "Barby Heisler", Model= "Corvette", Color= "Red", PaymentMode= "Credit Card", DeliveryDate= "11/24/2014", Amount= "13035.06" },
new { CustomerName= "Karyn Boik", Model= "Regal", Color= "Indigo", PaymentMode= "Debit Card", DeliveryDate= "05/12/2014", Amount= "18488.80" },
new { CustomerName= "Jeanette Pamplin", Model= "S4", Color= "Fuscia", PaymentMode= "Net Banking", DeliveryDate= "12/30/2014", Amount= "12317.04" },
new { CustomerName= "Cristi Espinos", Model= "TL", Color= "Aquamarine", PaymentMode= "Credit Card", DeliveryDate= "12/18/2013", Amount= "6230.13" },
new { CustomerName= "Issy Humm", Model= "Club Wagon", Color= "Pink", PaymentMode= "Cash On Delivery", DeliveryDate= "02/02/2015", Amount= "9709.49" },
new { CustomerName= "Tuesday Fautly", Model= "V8 Vantage", Color= "Crimson", PaymentMode= "Debit Card", DeliveryDate= "11/19/2014", Amount= "9766.10" },
new { CustomerName= "Rosemaria Thomann", Model= "Caravan", Color= "Violet", PaymentMode= "Net Banking", DeliveryDate= "02/08/2014", Amount= "7685.49" },
};
ViewBag.DefaultData = data;
return View();
}