在没有页眉的情况下将工作表创建为工作簿ace.oledb
问题描述:
如何通过ace.oledb创建没有标题的命名工作表 - 就像默认工作表一样?在没有页眉的情况下将工作表创建为工作簿ace.oledb
用于将片状的创建命令必须是这样的:
CREATE TABLE [MySheet] (field1 type, field2 type ..., fieldn type)
它创建MySheet的工作,总是插入(无论HDR扩展属性的连接字符串或注册表设置FirstRowHasNames)在含有MySheet的工作field1的第一线,field2 ... fieldn
基本上我不想要一个“表头”那里,我只需要在新创建的命名空白表中插入值。
答
这不太好,但这是我发现创建一个没有任何内容的新工作表的唯一方法。我发现的唯一问题是,Oledb会自动在CREATE
命令中指定的标题单元格上创建一个命名范围,但假定您不关心这个问题,那么这应该可以正常工作。
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
";Mode=ReadWrite;Extended Properties=\"Excel 12.0 XML;HDR=NO\"";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "CREATE TABLE [MySheet] (a string)"; // Doesn't matter what the field is called
cmd.ExecuteNonQuery();
cmd.CommandText = "UPDATE [MySheet$] SET F1 = \"\"";
cmd.ExecuteNonQuery();
}
conn.Close();
}
+0
脏,但工作。谢谢。 – ripahoratiu 2013-02-20 08:38:18
HDR是你不得不为改变而发生的变化 - 我以前做过无数次。你能发布你的连接字符串吗? – 2013-02-15 16:21:19
http://www.mikesknowledgebase.com/pages/SQLServer/ImportExcelIntoSQLServer.htm – 2013-02-15 16:22:24
oleDbConnection.ConnectionString = @“Provider = Microsoft.ACE.OLEDB.12.0; Data Source = d:\ NewExcelFile.xlsx; Extended Properties =” “Excel 12.0 Xml; HDR = NO”“;”; 也尝试过HDR = YES - 我已经说过,在我的文章中 - FirstRowHasNames和FirstRowHasNames在注册表中设置为0 ... – ripahoratiu 2013-02-16 09:33:11