2013-06-03 46 views
2

我使用visual studio 2008在c#上创建控制台应用程序。用代码覆盖excel文件

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

我使用喷气读取文件:

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\";";  

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

我曾尝试阅读的Excel与NPOI库文件,我得到了错误:

消息=“无效头标识;阅读0x0010000000060809,预计0xE11AB1A1E011CFD0”

所以,它就像该文件是无效某种方式。

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

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

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

File.OpenWrite(file_path); 

但我怎么能覆盖该文件?

+0

你从哪里得到的源文件?是否有可能它不是一个真正有效的Excel“xls”文件,而是其他一些带有“xls”扩展名的文件格式? –

+0

excel文件由另一个程序生成,所以它生成为excel文件。 – pyram

+0

不要按这一点,但你确定吗?如果您查看内容,许多Web应用程序(例如)将生成“xls”文件,这些文件不过是HTML表格。 Excel可以打开它们,但其他应用程序可能会阻塞该格式。 –

回答

1

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

试试这个:

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

对于其他类型的连接,见ConnectionStrings

+0

是的我说的是一个excel文件。我刚刚编辑了我的问题。但我得到了同样的错误。 正如你所看到的,我也试图用另一个库,NPOI库打开excel文件,但它又失败了。 – pyram