execCommand() deprecated, copy table solution

Viewed 452

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.

0 Answers
Related