Я работаю над приложением Human Resources, которое должно показывать отчет о рабочей среде в формате Excel, как это показано на этом изображении .
Теперь я ищу помощь по этой теме., Я использую ClosedXML.Excel
, в настоящее время я создаю свои файлы Excel с помощью метода, который я создаю сам, он входит в Список объектов и создает файл Excel в ответ на запрос http.Вот код:
public static bool ConvertToExcel<T>(IList<T> data, string excelName, string sheetName)
{
PropertyDescriptorCollection properties =
TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name.Replace("_"," "), Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name.Replace("_", " ")] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
try
{
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(table, sheetName);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.Charset = "";
string FileName = excelName + ".xlsx";
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + FileName);
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(System.Web.HttpContext.Current.Response.OutputStream);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
}
}
catch (Exception e)
{
throw e;
return false;
}
return true;
}
Из-за длинных имен боссов он значительно расширяет столбец Excel на простой процент, я хочу знать, смогу ли я добиться поворота (на 90 градусов)письмо заголовка.Этого можно добиться с моей текущей библиотекой ClosedXML.Excel
?Я хочу использовать тот же метод для создания этого отчета рабочей среды.
Заранее спасибо :)