function calculateColumnWidth(oColumn) {
		const oTableElement = oColumn._getTable().getDomRef();
		const oHiddenArea = document.createElement("div");

		oHiddenArea.classList.add("sapUiTableHiddenSizeDetector", "sapUiTableHeaderDataCell", "sapUiTableDataCell");
		oTableElement.appendChild(oHiddenArea);

		// Create a copy of all visible cells in the column, including the header cells without colspan
		const aCells = Array.from(oTableElement.querySelectorAll(`td[data-sap-ui-colid="${oColumn.getId()}"]:not([colspan])`))
			.filter((element) => !element.classList.contains("sapUiTableHidden"))
			.map((element) => element.firstElementChild.cloneNode(true));

		aCells.forEach((cell) => {
			cell.removeAttribute('id');
			oHiddenArea.appendChild(cell);
		});

		// Determine the column width
		let iWidth = oHiddenArea.getBoundingClientRect().width + 4; // widest cell + 4px for borders and rounding
		const iTableWidth = oTableElement.querySelector('.sapUiTableCnt').getBoundingClientRect().width;
		iWidth = Math.min(iWidth, iTableWidth); // no wider as the table
		iWidth = Math.max(iWidth, TableUtils.Column.getMinColumnWidth()); // not too small

		oTableElement.removeChild(oHiddenArea);

		return Math.round(iWidth);
	}
Calculates the widest content width of the currently visible column cells including headers.
Headers with column span are not taken into account.

@param {sap.ui.table.Column} oColumn The column control
@returns {int} iWidth Calculated column width
@private