2010-03-03 2 views
2

Как я могу напечатать любой объект в системном буфере обмена так же, как printfn "%A"? Кажется, я не могу просто использовать clipboard.setdataobject().F # printfn "% A" в буфер обмена

ответ

3

Вы можете использовать функцию spritnf, которая имеет те же возможности форматирования, что и printf, но в результате возвращает форматированную строку. Для того, чтобы сохранить строку в буфер обмена, как только вы имеете его, вы можете использовать метод SetText (вам нужна ссылка на System.Windows.Forms):

open System.Windows.Forms 

let what = [1;2;3] 
let str = sprintf "%A" what 
Clipboard.SetText(str) 

После выполнения этого кода, буфер обмена должен содержать отформатированной F # список «[1; 2; 3]».

+0

избили меня :) –

+0

спасибо. это очень аккуратно. если я хочу быстро скопировать данные в excel в fsi.exe, есть ли лучший способ, чем это? – ahala

+0

Вы можете использовать автоматизацию офиса (например, ссылку Microsoft.Office.Interop.Excel), чтобы программно вытолкнуть данные в электронную таблицу (но я не знаю всех подробностей о том, как). – Brian

Смежные вопросы