用代码覆盖excel文件

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

该应用程序“读取”一个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文件,我得到错误:

消息=“标头签名无效;读取0x0010000000060809,预计0xE11AB1A1E011CFD0”

所以,就像这个文件在某些​​方面是无效的。

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

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

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

 File.OpenWrite(file_path); 

但是我怎么能覆盖文件?

据我所知,你不需要打开和重写它。 您的连接string是错误的。 你不会说任何地方这是一个Excel文件,所以默认情况下,它正在寻找一个Access数据库(而不是find一个)。

试试这个:

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

对于其他types的连接,请参阅ConnectionStrings