用代码覆盖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