用代码覆盖excel文件

时间:2013-06-03 22:35:52

标签: c# excel

我正在使用visual studio 2008在c#上创建一个控制台应用程序。

应用程序“读取”excel文件97-2003(.XLS)。

我正在使用jet来读取文件:

OleDbConnection oConn = new OleDbConnection();
   oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + file_path  + " ;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";";    

但是在运行程序时,我收到错误“外部表不是预期的格式。”

我试过用NPOI库读取excel文件,我收到错误:

Message =“无效的标头签名;读取0x0010000000060809,预期为0xE11AB1A1E011CFD0”

所以,就像文件在某种程度上无效一样。

如果通过Windows,我在Office Excel上打开excel文件,然后使用相同和相同的扩展名保存它.xls覆盖它,然后运行控制台应用程序,然后应用程序运行正常,没有错误。< / p>

所以,我想做的是:使用c#代码,打开文件并保存并覆盖它,这样应用程序就可以成功读取文件。

我想我可以像这样打开文件:

File.OpenWrite(file_path);

但我怎么能覆盖这个文件?

1 个答案:

答案 0 :(得分:1)

就我所见,你不需要打开和重写它。你的连接字符串是错误的。你不是说任何地方都是Excel文件,所以默认情况下它正在寻找一个Access数据库(而不是找到一个)。

请改为尝试:

Provider=Microsoft.Jet.OLEDB.4.0; data source="YourFileName.xls"; Extended Properties=Excel 8.0;

有关其他类型的连接,请参阅ConnectionStrings