我必须为财务dpt自动化一些东西。我已经得到了我想要使用的OleDb读取Excel文件:C#Excel文件OLEDB读取HTML导入
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
}
}
}
}
通常情况下,connectionstring
将有一个扩展属性“的Excel 8.0”,而是因为它似乎是文件不能读取方式一个html文件重命名为.xls。 当我从XLS中的数据复制到一个新的XLS,我可以读取与E.P.新XLS设置为“Excel 8.0”。
是的,我可以通过创建一个Excel的实例读取该文件,但我宁愿不.. 任何想法,我可以怎样使用的OleDb无需对XLS手动更改或通过在实例化与范围打读取XLS Excel中?
问候,
米歇尔
谢谢你的回答,它看起来像它会做的伎俩。我不得不完成我的程序,所以我现在通过实例化Excel来实现它。当我获得时间时,我会修改代码! – 2009-08-17 07:21:07
这是一个重要的事情,如果你的HTML文件没有在元数据中的