眼眸繁星
2022-11-11 13:28:38
我在一個網(wǎng)站上工作,其中一項(xiàng)功能是將一些文本復(fù)制到剪貼板,以便用戶可以將此文本粘貼到他們的 Excel 電子表格中。他們要復(fù)制到剪貼板的內(nèi)容實(shí)際上是由制表符分隔的多個值,因此當(dāng)他們復(fù)制到 excel 中時(假設(shè)他們將默認(rèn)文本保留到列功能),它會將文本拆分為多個單元格。例如,我有這個:getCopyText() { return `a \t b \t b \t ${FAKE_FORECAST_VALUE} \t d \t e`}render() { return ( .... <CopyToClipboard text={this.getCopyText()}> <Button"> Copy to Clipboard </Button> </CopyToClipboard> ... )}當(dāng)我單擊按鈕將文本復(fù)制到剪貼板并將其粘貼到 Excel 中時,它似乎沒有響應(yīng)選項(xiàng)卡,它看起來像空格(也沒有將值分隔到列中)。為了進(jìn)行完整性檢查,我嘗試將原始剪貼板字符串粘貼到 Word 中并打開顯示制表符。它顯示了制表符。然后我將粘貼的字符串從 Word復(fù)制到 Excel 中。我很困惑地看到,如果我將 Word 中的字符串(剛剛從剪貼板粘貼)復(fù)制到 Excel 中,它會響應(yīng)制表符并將文本分成多列。 總而言之:復(fù)制到剪貼板 -> 粘貼到 Excel = 似乎不保留選項(xiàng)卡,不將值拆分為列,不起作用復(fù)制到剪貼板 -> 粘貼到 Word(保留選項(xiàng)卡) -> 將粘貼的字符串從 Word 復(fù)制到 Excel = 保留選項(xiàng)卡,將值拆分為列當(dāng)然,我不希望用戶必須將字符串粘貼到其他地方并在粘貼到 Excel 之前重新復(fù)制它,但我對這里發(fā)生的事情感到非常困惑,特別是因?yàn)樗雌饋硐袷侵票矸谧址校◤募糍N板粘貼到 Word 或從剪貼板粘貼到 vim / 記事本等時可以看到)。有什么我可以從 JS 方面做的事情,或者在字符串中放入一些東西來幫助解決這個問題,這樣用戶就不必處理它了?
1 回答

守著一只汪
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
在我發(fā)布這個問題一兩天后,我實(shí)際上找到了這個人的答案,這有助于解釋實(shí)際發(fā)生的事情:here。我仍然不完全確定它是否/如何解釋粘貼到 Word 然后從那里復(fù)制到 Excel 的工作原理。
但是,我確實(shí)想指出,對于我的特定用例,我通過確保將純文本復(fù)制到剪貼板而不是將其檢測為 HTML 來使復(fù)制到剪貼板 -> 粘貼到 excel 功能正常工作。
由于我使用的是 CopyToClipboard 依賴項(xiàng)(React 變體),因此只需添加一個選項(xiàng),該選項(xiàng)可讓您指定應(yīng)將文本復(fù)制為 text/plain。
CopyToClipboard options : option.format 的描述:String. Optional. Set the MIME type of what you want to copy as. Use text/html to copy as HTML, text/plain to avoid inherited styles showing when pasted into rich text editor.
添加回答
舉報
0/150
提交
取消