I had some trouble finding a solution to copying a full table as exexCommand is deprecated and the Clipboard API only takes a string.
I found a mix of different solutions which didn't quite make it work for me.
My solution is this:
const tableRef = useRef<HTMLTableElement>(null);
const copyToClipboard = () => {
if (tableRef.current && window.getSelection) {
const selection = window.getSelection();
selection?.selectAllChildren(tableRef.current);
navigator.clipboard.writeText(selection!.toString());
selection?.removeAllRanges();
}
};
<table ref={tableRef}></table>
Hope this will be of some help to someone.