繁体   English   中英

用代码覆盖Excel文件

[英]Overwrite excel file with code

我正在使用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文件,但出现错误:

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

因此,就好像文件在某种程度上是无效的。

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

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

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

File.OpenWrite(file_path);

但是,如何覆盖文件?

据我所知,您无需打开并重写它。 您的连接字符串错误。 您并不是在说它是Excel文件的任何地方,因此默认情况下它是在查找Access数据库(而不是查找数据库)。

尝试以下方法:

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

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

暂无
暂无

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

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