我正在使用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);
但我怎么能覆盖这个文件?
答案 0 :(得分:1)
就我所见,你不需要打开和重写它。你的连接字符串是错误的。你不是说任何地方都是Excel文件,所以默认情况下它正在寻找一个Access数据库(而不是找到一个)。
请改为尝试:
Provider=Microsoft.Jet.OLEDB.4.0; data source="YourFileName.xls"; Extended Properties=Excel 8.0;
有关其他类型的连接,请参阅ConnectionStrings