我有一些自动化的财务DPT。 我已经得到了我想要使用的OleDb读取Excel文件:
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”,而是因为它似乎是重命名为.xls一个HTML文件的文件无法读取的方式。 当我从XLS中的数据复制到一个新的XLS,我可以读与EP设定为“创先争优8.0”的新XLS。
是的,我可以通过创建一个Excel的实例读取该文件,但我宁愿不..任何想法如何我可以读取使用OleDb的,而无需对XLS手动更改或通过在实例化Excel区域打XLS?
问候,
米歇尔