OLEDB将“#”转换为“”。在编写excel标题列时

时间:2019-09-10 02:35:25

标签: excel oledb

enter image description here
我有一个工作代码,可以在其中创建多个工作表并将其添加到工作簿中。除了一件事,一切都正常。我想写带有后缀的列标题。 DOCTOBOX#是我需要的标题,而不是普通标题。 OLEDB提供程序在写入excel时始终将转换为。其他特殊字符也可以。我尝试了所有可能的方法来使其正常运行,但是,似乎并非总是将转换为,并且我在excel中的列名显示为 DOCTOBOX。

string filePath = @"C:\FileDownload\";
    string filename = "MultipleExcelSheet_" + 
    DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".xls";

     string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" +
    "Data Source=C:\\FileDownload\\MultipleExcelSheet_" + DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".xls;" +
    "Extended Properties="Excel 12.0 Xml;HDR=NO;IMEX=0"";

    using (OleDbConnection conn = new OleDbConnection(connStr))
      {
                    conn.Open();
    for (int j = 0; j < 3; j++)
     {
        string sheetname = "LOB_" + j;

        string sheetSql1 = "CREATE TABLE " + sheetname + " (id varchar(50), [DOCTOBOX#] varchar(50), [BirthDate@] varchar(50))";
      using (OleDbCommand cmd = new OleDbCommand(sheetSql1 , conn))
       {
           cmd.ExecuteNonQuery();
       }
    sheetSql1 = "INSERT INTO " + sheetname + " VALUES ('1', 'ListOfOrders', '02/02/2012')";
      OleDbCommand cmd1 = new OleDbCommand(sheetSql1, conn);
      cmd1.ExecuteNonQuery();
    }

        conn.Close();

      Response.ContentType = "application/vnd.xls";
      Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
      Response.TransmitFile(filePath + filename);
      Response.End();
    }

0 个答案:

没有答案