问题描述
这是我下面创建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,但是如何在具有行的合并列上方添加。例如公司1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)