首页 文章

通过OLEDB创建没有 Headers 的Excel工作簿

提问于
浏览
0

我有一个C#程序写入Excel,它支持没有 Headers 和文件的文件 .

如果我写了我想要的 Headers ,这很好,但是在读取没有 Headers 的文件的情况下,我想写一个没有 Headers 的表 . 如果我使用相同的 Headers 来创建表格,我仍然会在内容中获得F1,F2,F3等 .

我写的连接字符串是: -

提供商= Microsoft.Jet.OLEDB.4.0;数据源=文件名;扩展属性= "Excel 8.0;HDR=No;IMEX=0;"

关于如何丢失 Headers 的任何想法?

1 回答

  • 0

    这个问题现在有点老了,但以下是我回答另一个类似问题的方法:

    这不是很好,但它是我发现创建一个没有任何内容的新工作表的唯一方法 . 我发现的唯一问题是Oledb会自动在CREATE命令中指定的 Headers 单元格上创建命名范围,但假设您不关心它,那么这应该可以正常工作 .

    string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
        ";Mode=ReadWrite;Extended Properties=\"Excel 8.0;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();
    }
    

相关问题