C#Excel文件OLEDB读取HTML IMPORT

我必须为金融部门自动化一些东西。 我有一个Excel文件,我想阅读使用OleDb:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=A_File.xls;Extended Properties=""HTML Import;IMEX=1;"""; using (OleDbConnection connection = new OleDbConnection()) { using (DbCommand command = connection.CreateCommand()) { connection.ConnectionString = connectionString; connection.Open(); DataTable dtSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if( (null == dtSchema) || ( dtSchema.Rows.Count <= 0 ) ) { //raise exception if needed } command.CommandText = "SELECT * FROM [NameOfTheWorksheet$]"; using (DbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { //do something with the data } } } } 

通常connectionstringstring会有一个扩展属性“Excel 8.0”,但是文件不能被这样读取,因为它似乎是一个重命名为.xls的html文件。 当我从xls复制数据到一个新的xls,我可以读取新的xls与EP设置为“Excel 8.0”。

是的,我可以通过创build一个Excel的实例来读取文件,但我宁愿不..任何想法如何我可以读取使用OleDb的xls,而无需手动更改xls或通过在实例化Excel中玩范围?

问候,

米歇尔

我在另一个论坛上问了同样的问题,并得到了答案,所以我想我会在这里分享。 按照这篇文章: http : //ewbi.blogs.com/develops/2006/12/reading_html_ta.html

而不是使用sheetname,您必须在没有$的select语句中使用页面标题。 SELECT * FROM [HTMLPageTitle]

我一直在寻找这么多的解决scheme,最终我发现了一些非常简单和容易的事情 – 将XML文件导入Excel文件,我试图先将XML转换为HTML,然后使用 –

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63

那么我发现我可以轻松地将我的输出文件更改为.xls,而不是.html

  //create the output stream XmlTextWriter myWriter = new XmlTextWriter ("result.html", null); 

那么从我的XML数据文件输出完美的Excel文件。

希望这会挽救我们的工作。

我遇到了同样的问题。 如前所述,它似乎是一个重命名为.xls的html文件。 当我将数据从xls复制到一个新的xls时,我可以读取新的xls,并将EP设置为“Excel 8.0”。

在这种情况下,文件无法保存在正确的格式。 所以我们必须将该文件转换为正确的格式。 为此,请使用MS Office Excel 2007,单击File – > Convert 。 该文件将被自动转换为正确的格式。