Я пытаюсь показать имя листа excel в messagebox, но, похоже , оно не работает, Может ли кто-нибудь мне помочь?
Я новичок в программировании. Я пытаюсь показать имя листа excel в окне сообщения , но, похоже, оно не работает, Может ли кто-нибудь мне помочь?
Что я уже пробовал:
Я пробовал это кодирование, но окно сообщения не отображается. Нужно ли мне вызывать эту функцию где-то, например, в button1_Click? Серьезно, я не знаю, что мне делать. Спасибо за помощь
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Data.OleDb; namespace Filter2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private String[] GetExcelSheetNames(string excelFile) { OleDbConnection objConn = null; System.Data.DataTable dt = null; try { // Connection String. Change the excel file to the file you // will search. String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + "SamsungGT-i9300GalaxySIII- demo (pendrive).xlsx" + ";Extended Properties=Excel 8.0;"; // Create connection object by using the preceding connection string. objConn = new OleDbConnection(connString); // Open connection with the database. objConn.Open(); // Get the data table containg the schema guid. dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { return null; } String[] excelSheets = new String[dt.Rows.Count]; int i = 0; // Add the sheet name to the string array. foreach (DataRow row in dt.Rows) { excelSheets[i] = row["TABLE_NAME"].ToString(); i++; } // Loop through all of the sheets if you want too... for (int j = 0; j < excelSheets.Length; j++) { // Query each excel sheet. } return excelSheets; } catch (Exception ex) { return null; } finally { // Clean up. if (objConn != null) { objConn.Close(); objConn.Dispose(); } if (dt != null) { dt.Dispose(); } } } } }
CHill60
В этом коде нет окон сообщений!
[no name]
Вы должны взять книгу по основному программированию на C# и поработать над ней. Или, что еще лучше, возьмите класс, чтобы научить вас программированию.
Richard MacCutchan
У меня есть похожая программа, которая отлично работает, получая все имена таблиц. Вам нужно пройти через свой код с помощью отладчика, чтобы точно увидеть, что происходит: сколько строк возвращается и какие имена листов найдены.
Я также замечаю, что вы игнорируете любое исключение в своем блоке catch, так что у вас вполне может быть ошибка, которую вы никогда не увидите. Вы должны понимать, что try/catch-это не механизм для того, чтобы ваш код работал, несмотря на ошибки, а для того, чтобы помочь их исправить.
Richard Deeming
"Нужно ли мне где-то вызывать эту функцию ..."
Да. Функции сами себя не называют.
Richard MacCutchan
Ха-ха,не заметил.