c# - 在没有标题的工作簿中创建工作表 ace.oledb

标签 c# excel oledb ado

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

工作表的创建命令必须类似于:

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

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

基本上我不需要“表头”,我只需要在新创建的命名空表中插入值。

最佳答案

这不太漂亮,但这是我发现的创建一个没有任何内容的新工作表的唯一方法。我发现的唯一问题是 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();
}

关于c# - 在没有标题的工作簿中创建工作表 ace.oledb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898469/

相关文章:

c# - OleDb Excel : No value given for one or more required parameters

c# - 将 Excel 导入 Datagridview

c# - 两个 ASP.NET Core 项目之间的依赖注入(inject)

c# - 如何为数据容器实现 "Do I Need To Save"机制?

c# - 将 javascript 中的数字转换为 4 字节数组

javascript - 直接下载文件,而不是从 window.open(url)

excel - 具有不同过滤器的 2 个工作表上的相同内容。

excel - 在 Excel 中使用 Len 函数定义条件时出现问题

excel - 包含来自另一个单元格的值的条件格式文本的公式

c# - Azure Web 应用程序上的 Office 组件安装