2016-06-03 3 views
0

Я использую этот код для экспорта файла excel. он отлично работает.Как применить границу к экспортированному файлу?

public void WriteHtmlTable<T>(IEnumerable<T> data, TextWriter output) 
{ 

    using (StringWriter sw = new StringWriter()) 
    { 
     using (HtmlTextWriter htw = new HtmlTextWriter(sw)) 
     { 
      Table table = new Table(); 
      TableRow row = new TableRow(); 
      PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); 
      foreach (PropertyDescriptor prop in props) 
      { 
       TableCell cell = new TableCell(); 
       cell.Text = prop.Name; 
       row.Cells.Add(cell); 
      } 

      table.Rows.Add(row); 


      foreach (T item in data) 
      { 
       row = new TableRow(); 
       foreach (PropertyDescriptor prop in props) 
       { 
        TableCell cell = new TableCell(); 
        cell.Text = prop.Converter.ConvertToString(prop.GetValue(item)); 

        row.Cells.Add(cell); 

       } 

       table.Rows.Add(row); 
      } 

      table.RenderControl(htw); 
      output.Write(sw.ToString()); 
     } 
    } 

} 

и дает мне этот выход enter image description here

, но выход, который я хочу это enter image description here

Я хочу границу для всех строк и columns.what изменения мне нужно сделать в моем коде ?? заблаговременно ...

+0

Написав реальный файл Excel, не вывода HTML и назвав его Excel. Или, если вам действительно нужно, вы, вероятно, можете сделать это, применив правильный CSS. – CodeCaster

+0

Я выводя html, а затем вызываю файл excel в jquery – akash

+0

Да, это хорошо. HTML не Excel. – CodeCaster

ответ

0

Это может вам помочь. Хотя я не проверял код, но вы можете сделать что-то вроде

//Add Borders for All Cells 
      sheet.Range["A1:E9"].Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin; 
      sheet.Range["A1:E9"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin; 
      sheet.Range["A1:E9"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin; 
      sheet.Range["A1:E9"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin; 

Примечание: Ссылка https://janewdaisy.wordpress.com/2011/12/05/c-add-borders-for-cells/

Смежные вопросы