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

C#中如何将剪贴板内容转换为DataTable?

将剪贴板内容转换为DataTable的实现尝试

最近我在折腾把剪贴板里的内容转换成DataTable,参考了一段核心代码来推进,下面是具体的实现片段和关键逻辑:

核心实现代码(C#):

private void PasteFromExcel() {
    DataTable tbl = new DataTable();
    tbl.TableName = "ImportedTable";
    // 读取剪贴板内容并按行拆分
    List<string> data = new List<string>(ClipboardData.Split('\n'));
    bool firstRow = true;
    
    // 移除最后一行可能存在的空行(复制Excel时常出现)
    if (data.Count > 0 && string.IsNullOrWhiteSpace(data[data.Count - 1])) {
        data.RemoveAt(data.Count - 1);
    }
    
    foreach (string iterationRow in data)
    {
        // 按制表符拆分单元格(Excel复制的内容默认用\t分隔单元格)
        string[] row = iterationRow.Split('\t');
        
        if (firstRow)
        {
            // 第一行作为表头,创建DataTable的列
            foreach (string header in row)
            {
                tbl.Columns.Add(header.Trim());
            }
            firstRow = false;
        }
        else
        {
            // 后续行作为数据行,去除单元格首尾空白后添加到DataTable
            tbl.Rows.Add(row.Select(cell => cell.Trim()).ToArray());
        }
    }
}

关键细节说明

  • 处理剪贴板内容时,先按换行符\n拆分所有行,同时移除最后可能的空行,避免无效的空数据行干扰
  • 假设剪贴板内容来自Excel复制:Excel复制的文本默认用制表符\t分隔单元格,用换行分隔行,这是这个实现的前提
  • 第一行被当作DataTable的表头,自动创建对应列;后续每行作为数据行添加,同时会去除每个单元格的首尾空白,避免格式问题

内容的提问来源于stack exchange,提问作者Gert Lõhmus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:07:13