C# C-如何使用ClosedXml将数据表导出到excel中的StringBuilder

C# C-如何使用ClosedXml将数据表导出到excel中的StringBuilder,c#,excel,windows,C#,Excel,Windows,我在中使用下面的代码 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 SqlComma

我在中使用下面的代码

 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.Addsrno.ToString,I;此声明 我也在使用closedXml

问题是只创建主工作表,而从不打开所有工作表

有人帮我吗
提前谢谢

ClosedXML无法导入HTML

您必须自己使用类似的方法解析HTML,并将HTML表中每个单元格的内容放在ClosedXML电子表格的相应单元格中

你应该这样做:

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);  
      }  
  }  
}  
此外,您还可以使用类似于此示例项目的开放XML导出XLS:


ClosedXML无法导入HTML

您必须自己使用类似的方法解析HTML,并将HTML表中每个单元格的内容放在ClosedXML电子表格的相应单元格中

你应该这样做:

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);  
      }  
  }  
}  
此外,您还可以使用类似于此示例项目的开放XML导出XLS: