使用C#,不相等的列/值创建Excel电子表格

问题描述

这是我下面创建excel的代码。

        public JsonResult ExportToExcel(Guid CustomerId)
        {
            DataTable dt = ToDataTable(CompanyUserManagement.GetCompanyUsersByCompanyId(CustomerId)
                      .Select(j => new
                      {
                          Forename = j.Forename,Surname = j.Surname,EmailAddress = j.EmailAddress,JobTitle = j.JobTitle,IsActive = j.IsActive == true ? "Yes" : "No"
                      }).ToList());

            string Name = CompanyManagement.GetCompanyById(CustomerId).CompanyName;
            var gv = new GridView();
            gv.DataSource = dt;//CompanyUserManagement.GetCompanyUsersByCompanyId(CustomerId);
            gv.DataBind();
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition","attachment; filename=ReportExcel.xls");
            Response.ContentType = "application/ms-excel";
            Response.Charset = "";
            StringWriter objStringWriter = new StringWriter();
            HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);
            gv.RenderControl(objHtmlTextWriter);
            Response.Output.Write(objStringWriter.ToString());
            Response.Flush();            
            Response.End();
            return Json(new { Result = "Success"});
        }

这是下面的从Linq转换为DataTable的代码。

    public DataTable ToDataTable<T>(List<T> items)
    {
        DataTable dataTable = new DataTable(typeof(T).Name);
        //Get all the properties
        PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
        foreach (PropertyInfo prop in Props)
        {
            dataTable.Columns.Add(prop.Name);
        }

        foreach (T item in items)
        {
            var values = new object[Props.Length];
            for (int i = 0; i < Props.Length; i++)
            {
                values[i] = Props[i].GetValue(item,null);
            }
            dataTable.Rows.Add(values);
        }
        return dataTable;
    }

现在这是下面创建的excel的格式。

enter image description here

我已经轻松创建了excel,但是如何在具有行的合并列上方添加。例如公司1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)