Получение имен листа 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