Чтение из Excel с помощью oledbcommand

В ниже кода вместо того, чтобы указать имя вкладки.. Есть ли так или иначе, мы можем просто сказать "выбор * от [tab1]"? каково когда-либо имя вкладки могло бы быть..

 OleDbCommand excelOledbCommand =
                            new OleDbCommand("Select * From [Sheet1$]", excelOledbCon);
7
задан Broken Link 12 March 2010 в 00:30
поделиться

1 ответ

Это может помочь

Советы по чтению таблиц Excel с использованием ADO.NET

Метод OleDbConnection.GetOleDbSchemaTable

Что-то вроде

OleDbConnection dbConnection = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BAR.XLS;Extended Properties=""Excel 8.0;HDR=Yes;""");
dbConnection.Open ();
try
{
    // Get the name of the first worksheet:
    DataTable dbSchema = dbConnection.GetOleDbSchemaTable (OleDbSchemaGuid.Tables, null);
    if (dbSchema == null || dbSchema.Rows.Count < 1)
    {
        throw new Exception ("Error: Could not determine the name of the first worksheet.");
    }
    string firstSheetName = dbSchema.Rows [0] ["TABLE_NAME"].ToString ();

    // Now we have the table name; proceed as before:
    OleDbCommand dbCommand = new OleDbCommand ("SELECT * FROM [" + firstSheetName + "]", dbConnection);
    OleDbDataReader dbReader = dbCommand.ExecuteReader ();

    // And so on...
}
finally
{
    dbConnection.Close ();
}
16
ответ дан 6 December 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: