Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Импорт данных из Excel в listbox 
:(
    Опции темы
dize
Дата 18.8.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Собственно есть данные(40 строк) в одном столбике, расположенные на Книга1, Лист1. Необходимо их отобразить точно так же в листбоксе.
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
jonie
Дата 18.8.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Вот вам, используйте...
Код


        /// <summary>
        /// загружает из XSL файла (соедирнение с ним задается в conn) имена листов Excel
        /// для Excel это считается иманами таблиц
        /// </summary>
        /// <param name="conn">Закрытый, но настроенны на соединение OleDbConnection</param>
        /// <returns>имена листов Excel</returns>
        private static string[] LoadXSLSchema(OleDbConnection conn)
        {
            string[] SheetNames = null;
            logger.Info("LoadXSLSchema started");
            try
            {
                conn.Open();

                DataTable SchemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null });
                if (SchemaTable.Rows.Count > 0)
                {
                    SheetNames = new string[SchemaTable.Rows.Count];
                    int i = 0;
                    foreach (DataRow TmpRow in SchemaTable.Rows)
                    {
                        SheetNames[i] = TmpRow["TABLE_NAME"].ToString();
                        i++;
                    }
                }
            }
            catch (Exception Ex)
            {
                logger.Error("Cant get schema from XSL", Ex);
                throw;
            }
            finally
            {
                if (conn != null && conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            logger.Info("LoadXSLSchema ended");
            return SheetNames;
        }

  

        /// <summary>
        /// Загружает XSL файл в DataSet.
        /// Анализируется только первый лист.
        /// Первая строка является заголовочной - по ней определяется количество и имена столбцов
        /// При ошибке пробрасывает исключение
        /// </summary>
        /// <param name="fileName">Имя файла XSL</param>
        /// <returns>Заполненый первой страницей из файла DataSet</returns>
        protected static DataTable LoadFromXLS(string fileName)
        {
            DataTable dt = new DataTable();
            try
            {
                string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=0\";", fileName);
                OleDbConnection conn = new OleDbConnection(connStr);
                
                #region get sheets name from XSL file
                string[] sheetNames = LoadXSLSchema(conn);
                if(sheetNames.Length<1)
                    throw new InvalidDataException("sheets not found");
                #endregion

                dt.TableName = sheetNames[0];

                #region load first sheet to DataSet.Tables[0]
                try
                {
                    string selStr = string.Format("select * from [{0}]", sheetNames[0]);
                    conn.Open();
                    OleDbDataAdapter sheetAdapter = new OleDbDataAdapter(selStr, conn);
                    sheetAdapter.Fill(dt);
                }
                catch (Exception ex)
                {
                    logger.Error("cant get first sheet", ex);
                    throw;
                }
                finally
                {
                    if (conn != null && conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                logger.Error("parse XLS file failed", ex);
                dt = null;
                throw;
            }
            return dt;
        }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dize
Дата 18.8.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



jonie, большое спасибо =)
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.