在工作簿中创建不带页眉的工作表ace.oledb

本文关键字:工作 ace oledb 工作簿 创建 | 更新日期: 2023-09-27 17:59:46

如何通过ace.oledb创建一个没有标题的命名工作表(就像默认工作表一样)?

图纸的创建命令必须类似于:

CREATE TABLE [MySheet] (field1 type, field2 type ..., fieldn type )

它创建MySheet,并始终在MySheet中插入(无论连接字符串中的HDR扩展属性或注册表设置FirstRowHasNames如何)包含field1、field2…fieldn 的第一行

基本上,我不想在那里有"表头",我只需要在新创建的命名空表中插入值。

在工作簿中创建不带页眉的工作表ace.oledb

这并不漂亮,但这是我发现的创建一个新工作表的唯一方法。我发现的唯一问题是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] (<colname> <col type>)";  // Doesn't matter what the field is called
        cmd.ExecuteNonQuery();
        cmd.CommandText = "UPDATE [MySheet$] SET F1 = '"'"";
        cmd.ExecuteNonQuery();
    }
    conn.Close();
}