日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

明明復(fù)制卻粘貼不了 excel跨表復(fù)制粘貼不了

伴隨 Windows 發(fā)展已超 25 年的 Raymond Chen,剛剛在一篇《The Old New Thing》開發(fā)者博客中調(diào)侃了系統(tǒng)剪貼板(clipboard)存在的所謂“最大數(shù)據(jù)限制”Bug。他以行數(shù) 30 萬+的一份大型電子表格文件為例 , 當(dāng)用戶打開后選中了所有行、并將之復(fù)制到剪貼板后,就會(huì)在粘貼至另一應(yīng)用程序時(shí)遇到問題 。

明明復(fù)制卻粘貼不了 excel跨表復(fù)制粘貼不了


假設(shè)這個(gè)應(yīng)用程序使用了 Get-Clipboard-Data 函數(shù),以檢索富文本格式的數(shù)據(jù) 。那你就會(huì)遺憾地發(fā)現(xiàn) —— 函數(shù)竟然返回了空值(NULL) 。
許多人或許會(huì)猜測(cè),該問題或與剪貼板的數(shù)據(jù)上限有關(guān) 。
然而 Raymond Chen 指出,事情并非如此。
剪貼板未預(yù)設(shè)可提取數(shù)據(jù)的最大值 , 其內(nèi)容僅受可用內(nèi)存和地址空間的限制 。
為避免 Get-Clipboard-Data 調(diào)用失敗,主要有兩種替代方案 —— 一種是將數(shù)據(jù)直接放到剪貼板,另一種就聲明擁有特定類型的數(shù)據(jù)、而不直接將它放到剪貼板上 。
對(duì)于很少被使用、或生成資源耗費(fèi)過高的數(shù)據(jù)格式時(shí),常見優(yōu)化方案是利用剪貼板的延遲渲染(delay-rendered) 。
然后在被詢問數(shù)據(jù)的格式時(shí) , 數(shù)據(jù)源的使用者會(huì)收到一條 WM_RENDERFORMAT 消息 —— 某人想調(diào)用該數(shù)據(jù),你是否選擇即時(shí)生成?

明明復(fù)制卻粘貼不了 excel跨表復(fù)制粘貼不了


Raymon Chen解釋稱:
Excel 本身無法以富文本格式運(yùn)行 , 其放置在剪貼板上的此類數(shù)據(jù),都是延遲渲染得來的 。
然后當(dāng)另一個(gè)程序要求提供富文本格式數(shù)據(jù)時(shí),Excel 會(huì)給出這樣的回應(yīng) —— 哦,好的 , 請(qǐng)稍等,我這就幫你去拿 。
據(jù)悉,富文本并不是數(shù)據(jù)表的最佳格式,因?yàn)樗饕菫榱宋谋径O(shè)計(jì)的 。即使可以搞定簡(jiǎn)單的表格,但更復(fù)雜的任務(wù)就跑不順了 。
當(dāng)系統(tǒng)要求剪貼板的所有者呈現(xiàn)數(shù)據(jù)時(shí),它會(huì)發(fā)送消息并等待最多 30 秒返回 。
若未能在 30 秒內(nèi)生成數(shù)據(jù),則系統(tǒng)會(huì)放棄請(qǐng)求、并導(dǎo)致 GetClipboardData 返回 NULL 空值 。
【明明復(fù)制卻粘貼不了 excel跨表復(fù)制粘貼不了】本例的問題 , 在于原表實(shí)在太大 , 導(dǎo)致 Excel 需要超過 30 秒才能生成富文本格式表 。后續(xù)開發(fā)團(tuán)隊(duì)會(huì)設(shè)想通過特殊手段,來延長(zhǎng)此類處理的等待時(shí)間 。

    推薦閱讀