zoukankan      html  css  js  c++  java
  • C#实现DataTable行列转置

    C#实现DataTable行列转置

    一、代码

          public static DataTable RevertRowToColumn(DataTable sourcedt)
            {
                DataTable dt = new DataTable();
                //转换后的第一列名,以后此列每行存放sourcedt对应对应的每列列名
                dt.Columns.Add("COLUMN_NAME", typeof(string));
    
                //第二行及以后,转换后重命名的列名,列数等于sourcedt行数
                string[] aa = new string[sourcedt.Rows.Count];
                //string[] aa = { "VLAUE_1", "VLAUE_2", "VLAUE_3", "VLAUE_4", "VLAUE_5", "VLAUE_6", "VLAUE_7", "VLAUE_8", "VLAUE_9", "VLAUE_10" };
                for (int i = 0; i < sourcedt.Rows.Count; i++)
                {
                    aa[i] = "VLAUE_" + (i + 1);
                }  
    
                //dt添加Columns
                for (int i = 0; i < aa.Length; i++)
                {
                    dt.Columns.Add(aa[i].ToString(), typeof(string));//统一按照string类型进行存放
                }
    
                //对sourcedt进行转换
                for (int j = 0; j < sourcedt.Columns.Count; j++)
                {
                    DataRow dr = dt.NewRow();
                    string column_name = sourcedt.Columns[j].ColumnName;
                    dr["COLUMN_NAME"] = column_name;//把source的列名赋值给转换成行的第一列值
                    for (int i = 0; i < sourcedt.Rows.Count; i++)
                    {
                        string cell_value = sourcedt.Rows[i][column_name].ToString();
                        dr[i + 1] = cell_value;
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
            }

    二、结果

    转置前:

    转置后:

    注意:此转换的每列列类型统一为:typeof(string)类型。


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    php CURL 发送请求封装
    PHP AES加解密(兼容php5,php7)
    vscode jshint 报'import' is only available in ES6 (use 'esversion: 6'). (W119)错误
    vue-cli4 + TS构建新项目
    搭建vue项目
    分享一个自然语言汉语时间语义识别的工具类
    图像检索阶段性总结
    mysql常用操作
    javascript在页面head内动态插入style
    iScroll-5拉动刷新功能实现与iScroll-4上拉刷新的一点改进
  • 原文地址:https://www.cnblogs.com/wml-it/p/14866500.html
Copyright © 2011-2022 走看看