我有一个工作代码,可以在其中创建多个工作表并将其添加到工作簿中。除了一件事,一切都正常。我想写带有#后缀的列标题。 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();
}