繁体   English   中英

使用Oledb导出到没有标题c#的excel文件中

[英]Export into excel file without headers c# using Oledb

我正在使用OleDB,我想将我的对象导出到excel表中。 工作表中的每一行都是我的一个对象。 问题是,当工作表中没有列标题时,我不知道如何插入数据。

这个:

commandString = "Insert into [Sheet1$] values('test1', 'test2')"

抛出此异常:

Number of query values and destination fields are not the same.

我的连接字符串是:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename+";Extended Properties='Excel 8.0;HDR=No'"

如果连接字符串包含HDR = NO,则Jet OLE DB提供程序会自动为您指定字段(F1表示第一个字段,F2表示第二个字段,依此类推)。 我将尝试以这种方式更改您的查询

commandString = "Insert into [Sheet1$] (F1, F2) values('test1', 'test2')" 

这只有在您创建了excel文件并在Sheet1的第一行的前两个单元格中插入了某些内容后才有效

你需要指定你正在写哪个值,因为你不使用HDR -只使用电池。 错误“查询值的数量”简化意味着 - 没有为所提供的值分配字段。

更新:@Steve与Fields(F1,F2等)是对的,下面的代码在这里工作:

    OleDbConnection Cn = new OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=No\"", @"D:\test.xls"));
    Cn.Open();
    OleDbCommand Com = new OleDbCommand("INSERT INTO [Sheet1$](F1,F2) VALUES('test3','test4');", Cn);
    Com.ExecuteNonQuery();
    Cn.Close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM