You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Interactive(Polyglot)Notebooks中复制数据到剪贴板?

在.NET Interactive Notebook中导出完整数据的实现方法

方法1:生成可下载的CSV链接

通过将数据序列化为CSV格式,结合HTML链接实现一键下载,支持浮点列表或元组列表:

F# 示例代码

open System
open System.Text
open Microsoft.DotNet.Interactive

// 示例元组列表数据
let data = [ for i in 1..100 -> (float i, float (i * 2)) ]

// 转换为CSV字符串
let toCsv (data: ('a * 'b) list) =
    let sb = StringBuilder()
    sb.AppendLine("列1,列2") |> ignore
    for (x, y) in data do
        sb.AppendLine($"{x},{y}") |> ignore
    sb.ToString()

let csvContent = toCsv data
let base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(csvContent))
let downloadLink = $"<a href='data:text/csv;base64,{base64}' download='full_data.csv'>下载完整数据</a>"

// 在笔记本中显示下载链接
Display(downloadLink, "text/html")

C# 示例代码

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.DotNet.Interactive;

// 示例元组列表数据
var data = new List<(double, double)>();
for (int i = 1; i <= 100; i++)
{
    data.Add((i, i * 2));
}

// 转换为CSV字符串
string ToCsv(List<(double, double)> data)
{
    var sb = new StringBuilder();
    sb.AppendLine("列1,列2");
    foreach (var (x, y) in data)
    {
        sb.AppendLine($"{x},{y}");
    }
    return sb.ToString();
}

var csvContent = ToCsv(data);
var base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(csvContent));
var downloadLink = $"<a href='data:text/csv;base64,{base64}' download='full_data.csv'>下载完整数据</a>";

// 在笔记本中显示下载链接
Display(downloadLink, "text/html");

方法2:复制数据到剪贴板

借助System.Windows.Forms.Clipboard实现数据一键复制到剪贴板,适合快速粘贴到Excel等工具:

F# 示例代码

#r "System.Windows.Forms.dll"
open System.Windows.Forms
open System.Text

// 示例浮点列表数据
let data = [ for i in 1..100 -> float i ]

// 转换为换行分隔的字符串(方便粘贴为列)
let clipContent = String.Join("\n", data)
Clipboard.SetText(clipContent)

printfn "数据已复制到剪贴板"

C# 示例代码

#r "System.Windows.Forms.dll"
using System.Windows.Forms;
using System.Text;

// 示例浮点列表数据
var data = new List<double>();
for (int i = 1; i <= 100; i++)
{
    data.Add(i);
}

var clipContent = string.Join("\n", data);
Clipboard.SetText(clipContent);

Console.WriteLine("数据已复制到剪贴板");

方法3:显示完整表格数据

将数据转换为DataTable后显示,突破默认20条的显示限制:

F# 示例代码

open System.Data
open Microsoft.DotNet.Interactive

let data = [ for i in 1..100 -> (float i, float (i * 3)) ]

// 创建DataTable并填充数据
let dt = DataTable()
dt.Columns.Add("列1", typeof<double>)
dt.Columns.Add("列2", typeof<double>)
for (x, y) in data do
    dt.Rows.Add(x, y)

// 显示完整表格
Display(dt)

内容的提问来源于stack exchange,提问作者Eugene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:35:22