C# - Как использовать для StringBuilder в Export Datatable, чтобы преуспеть, используя ClosedXml - PullRequest
1 голос
/ 05 марта 2020

Я использую приведенный ниже код в

 private void Form1_Load(object sender, EventArgs e)
 {
        System.Data.DataTable dt;
        SqlConnection con=new SqlConnection("Data Source=sanjay;Initial Catalog=Login;Integrated Security=True");
        SqlCommand cmd=new SqlCommand("select * from login",con);
        SqlDataAdapter sda=new SqlDataAdapter(cmd);
         dt=new System.Data.DataTable();
        sda.Fill(dt);
        int srno = 1;

        StringBuilder stb = new StringBuilder();

        ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
        String Todaysdate1 = DateTime.Now.ToString("dd-MM-yyyy");

        string appPath = Path.Combine(Environment.CurrentDirectory + "\\");
        if (!Directory.Exists(appPath + "\\" + Todaysdate1 + "\\TD"))
        {
            Directory.CreateDirectory(appPath + "\\" + Todaysdate1);
        }

        if (dt.Rows.Count > 0)
        {
           stb.Append("<html>");
             stb.Append("<head>");
             stb.Append("</head>");
             stb.Append("<body>");
             stb.Append("Sanju");
             stb.Append("<table border=2>");
             stb.Append("<tbody>");
             stb.Append("<tr style='height:25px'>");
             stb.Append("<td  colspan='18' style='text-align:center;font-size:18px;font-weight:bold;min-width:50px'>");
             stb.Append("<center> Form III - DEAF Voucher Preparation</center>");
             stb.Append("</td>");
             stb.Append("</tr>");
             stb.Append("<tr style='height:21px'>");
             stb.Append("<td colspan='18' style='text-align:center;font-size:16px;font-weight:bold;min-width:50px'>");
             stb.Append("<center>2018-05-01</center>");
             stb.Append("</td>");
             stb.Append("</tr>");
             stb.Append("<tr style='height:100px;font-weight:bold'>");
             stb.Append("<td style='text-align:center;font-size:14px'>No.</td>");
             stb.Append("</tr>");

             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 stb.Append("<tr>");
                 stb.Append("<td>" + srno++ + " </td>");
                 stb.Append("<td nowrap>" + dt.Rows[i][0].ToString() + "</td>");
                 stb.Append("<td style='background-color:#ff99cc'></td>");
                 stb.Append("<td style='background-color:#ff99cc'></td>");
                 stb.Append("<td style='background-color:#ff99cc'></td>");
                 stb.Append("</tr>");
                 wb.Worksheets.Add(srno.ToString(), i);//Add worksheet
             }
             stb.Append("</tbody>");
             stb.Append("</table>");
             stb.Append("</body>");
             stb.Append("</html>");

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(appPath + "\\" + Todaysdate1 + "\\TD_Results_From.XLS"))
            {
                file.WriteLine(stb.ToString());   
            }
            System.Diagnostics.Process.Start(appPath + "\\" + Todaysdate1 + "\\TD_Results_From.XLS");
        }

Я использую Wb.SavaAs() только для отображения листа добавления, но первый лист не открыт. Я получу доступ к книге, и все листы каждого отката будут создавать лист. Добавить несколько рабочих листов, которые я использую wb.Worksheets.Add(srno.ToString(), i); в этом утверждении Я также использую closedXml

Проблема заключается только в создании основного рабочего листа, но никогда не открывать весь рабочий лист

Любое тело Помогите мне Заранее спасибо

1 Ответ

0 голосов
/ 05 марта 2020

Закрыто XML Невозможно импортировать HTML.

Можно закрыто XML выписать HTML таблицу для Excel

Вы необходимо проанализировать HTML самостоятельно (используя что-то вроде HTML Agility Pack ) и поместить содержимое каждой ячейки в таблице HTML в соответствующую ячейку электронной таблицы Closed XML

Вы должны сделать это так:

public void WriteDataToExcel(DataTable dt, string fileName)  
{  
  using (XLWorkbook wb = new XLWorkbook())  
  {  
      //Add DataTable in worksheet  
      wb.Worksheets.Add(dt);  
      using (Stream stream = new FileStream(fileName, FileMode.Create))  
      {  
          wb.SaveAs(stream);  
      }  
  }  
}  

Кроме того, вы можете использовать Open XML как этот пример проекта для экспорта XLS:

Создание баз c Книга Excel с открытым XML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...