<input type="text" id="fileName" /> <input type="button" value="Save as Excel" onclick="saveAsExcel()" /> @(Html.EJ().Spreadsheet<object>("Spreadsheet") //.. ) // Save excel file to the server. function saveAsExcel(args) { var xlObj = $("#Spreadsheet").data("ejSpreadsheet"), fileName = $("#fileName").val(), exportProp = xlObj.XLExport.getExportProps(); $.ajax({ type: "POST", url: "/Spreadsheet/saveAsExcel", data: { fileName: fileName, sheetModel: exportProp.model, sheetData: exportProp.data }, success: function () { alert("File saved successfully"); } }); } |
// Save the Spreadsheet data as Excel to server. [AcceptVerbs(HttpVerbs.Post)] public string saveAsExcel(string fileName, string sheetModel, string sheetData) { //File Save to server here ExcelEngine excelEngine = new ExcelEngine(); IApplication application = excelEngine.Excel; try { // Convert Spreadsheet data as Stream var fileStream = Spreadsheet.Save(sheetModel, sheetData, ExportFormat.XLSX, ExcelVersion.Excel2013); fileStream.Position = 0; //Reset reader position IWorkbook workbook = application.Workbooks.Open(fileStream); var filePath = Server.MapPath("~/Files/" + fileName); workbook.SaveAs(filePath); return "Success"; } catch (Exception ex) { return "Failure"; } } |
|
<button class="e-btn" id="saveButton">Save To Server</button>
@Html.EJS().Spreadsheet("spreadsheet").OpenUrl("Home/Open").SaveUrl("Home/Save").Created("onCreated").Render()
<script>
document.getElementById('saveButton').addEventListener('click', function () {
var ssObj = ej.base.getComponent(document.getElementById('spreadsheet'), 'spreadsheet');
ssObj.saveAsJson().then((response) => {
var formData = new FormData();
formData.append('JSONData', JSON.stringify(response.jsonObject.Workbook));
formData.append('fileName', 'Sample');
formData.append('saveType', 'Xlsx');
$.ajax({
type: "POST",
url: "Home/SaveToServer",
data: { JSONData: JSON.stringify(response.jsonObject.Workbook), fileName: "Sample", saveType: "xlsx" },
success: function () {
}
})
});
});
}
</script> |
|
public string SaveToServer(SaveSettings saveSettings)
{
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
try
{
// Convert Spreadsheet data as Stream
Stream fileStream = Workbook.Save<Stream>(saveSettings);
IWorkbook workbook = application.Workbooks.Open(fileStream);
var filePath = HttpContext.Server.MapPath("~/Files/") + saveSettings.FileName + ".xlsx";
workbook.SaveAs(filePath);
return "Spreadsheet saved successfully.";
}
catch (Exception ex)
{
// exception code comes here
return "Failure";
}
} |
It will be great if you help me , I have followed below steps,
File=>open excel file (attached sample file
click on save to server button but got error on line Stream fileStream = Workbook.Save<Stream>(saveSettings);
System.ArgumentNullException: 'Value cannot be null.
Parameter name: value'
I have refer below code
|
function btnCompare_Click() {
var spreadsheetObj = ej.base.getComponent(document.getElementById('spreadsheet'), 'spreadsheet');
var fileName = "Sample";
var contentType = "Xlsx";
var versionType = "Xlsx";
var saveType = "Xlsx";
var pdfSettings = { FitSheetOnOnePage: false };
spreadsheetObj.saveAsJson().then(Json => (fetch('/Home/Save', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ FileName: fileName, JSONData: JSON.stringify(Json.jsonObject.Workbook), SaveType: saveType, FileContentType: contentType, VersionType: versionType, PDFLayoutSettings: JSON.stringify(pdfSettings) }), // send the filename, json data, content type, version type from client to server
})
.then((response) => response.json())
.then((data) => {
console.log(data);
})))
} |