Получение первого листа из документа Excel независимо от листа называет с OleDb

Если Вы просто хотите имя принтера никакое преимущество вообще. Но WMI способен к возврату целого набора других свойств принтера:

using System;
using System.Management;
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            ObjectQuery query = new ObjectQuery(
                "Select * From Win32_Printer " +
                "Where Default = True");

            ManagementObjectSearcher searcher =
                new ManagementObjectSearcher(query);

            foreach (ManagementObject mo in searcher.Get())
            {
                Console.WriteLine(mo["Name"] + "\n");

                foreach (PropertyData p in mo.Properties)
                {
                    Console.WriteLine(p.Name );
                }
            }
        }
    }
}

и не просто принтеры. Если Вы интересуетесь каким-либо видом связанных с компьютером данных, возможности - Вы, может получить его с WMI. WQL (версия WMI SQL) является также одним из своих преимуществ.

30
задан Osama Al-Maadeed 17 September 2009 в 11:29
поделиться

2 ответа

в итоге использовал это:

using (OleDbConnection conn = new OleDbConnection(connString))
{
    conn.Open();
    dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
    Sheet1= dtSchema.Rows[0].Field<string>("TABLE_NAME");
}
30
ответ дан 27 November 2019 в 23:53
поделиться

Вы можете использовать GetOleDbSchemaTable (VB) или GetOleDbSchemaTable (C #).

Все имена рабочих листов будут возвращены как часть таблицы данных, которую вы можете просмотреть.

Используя OleDbSchemaGuid, информацию можно получить в

  • Столбцах
  • Внешних ключах
  • Индексах
  • Первичных ключах
  • Таблицы
  • Просмотры

Полная документация MSDN доступна здесь

1
ответ дан 27 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

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