源码
#region 添加合计行,计算每列数据
//合计行
DataRow dr = dtNew.NewRow();
dr["仓库名称"] = "合计";
for (int j = 1; j < dt.Columns.Count; j++)
{
float value = 0; //单个数据值
float sum = 0; //数据总和
string returnstr = ""; //列字段返回值
int k = 0; //当前列数
string str = "%"; //数据中的特殊字符
for (int i = 0; i < dt.Rows.Count; i++)
{
//判断是否存在百分号,如果存在删除百分号,将数据转化为浮点型形
string x1 = dt.Rows[i][j].ToString();
if (x1.Contains(str))
{
string result = x1.Replace(str, ""); //去除%号
value = float.Parse(result);
sum += value;
}
else
{
value = int.Parse(x1);
sum += value;
}
}
//获取列字段名,从dt中拿
returnstr = dt.Columns[j].ColumnName;
//获取列字段名,从gridview中拿
//foreach (BandedGridColumn dc in this.bandedGridView1.Columns)
//{
// if (k == j+1)
// {
// returnstr = dc.FieldName;
// }
// k++;
//}
//判断列数据是否需要添加%号
if (returnstr.Contains(str))
{
dr[returnstr] = (sum/dt.Rows.Count).ToString()+str; //算出平均值,并添加%号
}
else
{
dr[returnstr] = sum;
}
}
dtNew.Rows.Add(dr); //在dtNew表中添加合计行
#endregion