Change Cells Alignment and Keep Existing Formatting
Possible Usage Scenarios
Sometimes, you want to change the alignment of multiple cells but also want to keep existing formatting. Aspose.Cells for JavaScript via C++ allows you to do it using the StyleFlag.alignments(boolean) method. If you will set it true, changes in alignment will take place otherwise not. Please note, StyleFlag object is passed as a parameter to the Range.applyStyle(Style, StyleFlag) method which actually applies the formatting to a range of cells.
Change Cells Alignment and Keep Existing Formatting
The following sample code loads the sample Excel file, creates the range and center aligns it horizontally and vertically and keeps the existing formatting intact. The following screenshot compares the sample Excel file and output Excel file and shows that all existing formatting of the cells is the same except that cells are now center aligned horizontally and vertically.
Sample Code
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Change Cells Alignment and Keep Existing Formatting</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, StyleFlag, TextAlignmentType, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiate Workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access first worksheet
const worksheet = workbook.worksheets.get(0);
// Create cells range
const range = worksheet.cells.createRange("B2:D7");
// Create style object
const style = workbook.createStyle();
// Set the horizontal and vertical alignment to center using property assignments
style.horizontalAlignment = TextAlignmentType.Center;
style.verticalAlignment = TextAlignmentType.Center;
// Create style flag object
const flag = new StyleFlag();
flag.alignments = true; // Set style flag alignments true
// Apply style to range of cells
range.applyStyle(style, flag);
// Save the workbook in XLSX format and provide download link
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'outputChangeCellsAlignmentAndKeepExistingFormatting.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
resultDiv.innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>