«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить имена листов Excel в их первоначальном порядке с помощью OLEDB?

Как получить имена листов Excel в их первоначальном порядке с помощью OLEDB?

Опубликовано в 2025-02-26
Просматривать:121

How to Retrieve Excel Sheet Names in Their Original Order Using OLEDB?

Получение имен листа Excel в заказе листа с использованием OLEDB

задача извлечения имен листа из рабочей книги Excel обычно встречается при программировании. Однако получение этих имен в порядке, которые они определены в электронной таблице, может быть сложным при использовании oledb.

определение проблемы

путем перестройки имен листа алфавитно, oledbconnection. GetOledbschematable () не предоставляет листовые имена в желаемом порядке. Это препятствует способности пользователя указывать поиск данных на основе имени листа или индекса, что приводит к путанице.

] ] Решение с использованием вложенного цикла

один подход включает в себя итерацию через листы последовательно От листа 0 до количества листов минус 1. Это обеспечивает сохранение листа. Заказ.

реализация с использованием oledb

, если использование классов взаимодействия Office невозможно, доступно решение с использованием OLEDB:

/// 
/// Retrieves excel sheet names from an excel workbook.
/// 
/// The excel file.
/// String[]
private String[] GetExcelSheetNames(string excelFile)
{
    OleDbConnection objConn = null;
    System.Data.DataTable dt = null;

    try
    {
        // Connection String
        String connString = "Provider=Microsoft.Jet.OLEDB.4.0;"   
          "Data Source="   excelFile   ";Extended Properties=Excel 8.0;";

        // Create connection and open connection to database
        objConn = new OleDbConnection(connString);
        objConn.Open();

        // Get data table containing schema guid
        dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        if(dt == null)
           return null;

        // Initialize String[] to store sheet names.
        String[] excelSheets = new String[dt.Rows.Count];
        int i = 0;

        // Add sheet name to the string array.
        foreach(DataRow row in dt.Rows)
        {
           excelSheets[i] = row["TABLE_NAME"].ToString();
           i  ;
        }

        return excelSheets;
   }
   catch(Exception ex)
   {
       return null;
   }
   finally
   {
      // Clean up connection and data table
      if(objConn != null)
      {
          objConn.Close();
          objConn.Dispose();
      }
      if(dt != null)
      {
          dt.Dispose();
      }
   }
}

Этот код подключается к файлу Excel, извлекает таблицу данных, содержащую имена листов, и заполняет строку [] этими именами в порядке, которые они появляются в электронной таблице.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3