2010-07-04 49 views
0

我有一个C#程序来写入Excel,它支持没有标题和文件的文件。通过没有标题的OLEDB创建Excel工作簿

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

我写的连接字符串是: -

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

关于如何丢失标题的任何想法?

+0

的可能重复的[OLEDB&混合Excel中的数据类型:缺失数据](http://stackoverflow.com/questions/3232281/oledb-mixed-excel-datatypes-missing-data) – 2014-09-03 11:11:12

回答

0

这个问题现在是有点老了,但下面的是我如何回答另一个相似的问题:

这是不漂亮,但它是我发现创建具有什么也没有新的工作表的唯一途径。我发现的唯一问题是,Oledb会自动在CREATE命令中指定的标题单元格上创建一个命名范围,但假设你不关心这个问题,那么这应该可以正常工作。

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(); 
} 
相关问题