Windows剪貼板無法復制超大Excel數據?問題與超時設置有關
伴隨 Windows 發展已超 25 年的 Raymond Chen,剛剛在一篇《The Old New Thing》開發者博客中調侃了系統剪貼板(clipboard)存在的所謂“最大數據限制”Bug 。他以行數 30 萬+的一份大型電子表格文件為例,當用戶打開后選中了所有行、并將之復制到剪貼板后,就會在粘貼至另一應用程序時遇到問題。
訪問:
阿里云6月“云上特賣”活動上線 贏取最高500元代金券
假設這個應用程序使用了 Get-Clipboard-Data 函數,以檢索富文本格式的數據。那你就會遺憾地發現 —— 函數竟然返回了空值(NULL)。
許多人或許會猜測,該問題或與剪貼板的數據上限有關。
然而 Raymond Chen 指出,事情并非如此 。
剪貼板未預設可提取數據的最大值,其內容僅受可用內存和地址空間的限制。
為避免 Get-Clipboard-Data 調用失敗,主要有兩種替代方案 —— 一種是將數據直接放到剪貼板,另一種就聲明擁有特定類型的數據、而不直接將它放到剪貼板上。
對于很少被使用、或生成資源耗費過高的數據格式時,常見優化方案是利用剪貼板的延遲渲染(delay-rendered)。
然后在被詢問數據的格式時,數據源的使用者會收到一條 WM_RENDERFORMAT 消息 —— 某人想調用該數據,你是否選擇即時生成?
Raymon Chen 解釋稱:
Excel 本身無法以富文本格式運行,其放置在剪貼板上的此類數據,都是延遲渲染得來的。
然后當另一個程序要求提供富文本格式數據時,Excel 會給出這樣的回應 —— 哦,好的,請稍等,我這就幫你去拿。
據悉,富文本并不是數據表的最佳格式,因為它主要是為了文本而設計的。即使可以搞定簡單的表格,但更復雜的任務就跑不順了。
當系統要求剪貼板的所有者呈現數據時,它會發送消息并等待最多 30 秒返回。
若未能在 30 秒內生成數據,則系統會放棄請求、并導致 GetClipboardData 返回 NULL 空值。
本例的問題,在于原表實在太大,導致 Excel 需要超過 30 秒才能生成富文本格式表。后續開發團隊會設想通過特殊手段,來延長此類處理的等待時間。
推薦
-
頭號工程負責人卸任 Meta又一次遭受高管變動沖擊
Facebook 母公司 Meta 最近出現人事動蕩。在首席運營官雪莉?桑德伯格 (Sheryl Sandberg) 和 AI...
來源:鳳凰科技 -
對簿公堂后變成戰友 Waymo和Uber正在合作研發無人駕駛卡車
對簿公堂后,Waymo 和 Uber 變成戰友。Waymo 和 Uber 聯手搞自動駕駛了!據外媒 The Verge 報道...
來源:車東西 -
-
-
-
-
巴西全國有多少輛電動汽車 巴西純電動汽車有多少輛?
巴西聯邦共和國(葡萄牙語:República Federativa do Brasil;英語:The Federative Republic of Brazil),簡稱巴西(Brazil)。
來源:科技日報 -
-
-
在2030年前實現普遍且有意義的數字連接 國際電信聯盟宣布新具體目標
日前,聯合國和其下屬機構國際電信聯盟(ITU)宣布了一套新的聯合國具體目標,即在2030年前實現普遍且有意...
來源:人民郵電報
直播更多》
-
本田和LG新能源考慮在美國合建新電池廠 俄亥俄州被認為具有候選優勢
從多位消息人士處知悉,本田汽車和 LG...
-
本田和LG新能源考慮在美國合建新電池廠 俄亥俄州被認為具有候選優勢
從多位消息人士處知悉,本田汽車和 LG...
-
高性能CPU商業化動作不斷 歐洲自主處理器技術成果轉化進入加速期
作為歐盟資助的歐洲處理器倡議(European...
-
涉嫌錯報虛假賬號數量 美國得州對推特展開調查
美國得州總檢察長肯?帕克斯頓 (Ken P...
-
員工工作會面臨哪些不確定性 如何消除在工作中面臨的不確定性?
員工工作會面臨哪些不確定性?員工的工作...
-
華燦光電怎么樣 華燦光電哪個部門好?
華燦光電公告,公司擬以全資子公司華燦...