Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 11:34   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Катя, давайте так.
в Excel у Вас несколько строк и столбцов.
Вас интересует ТОЛЬКО столбец, озаглавленный "Данные" и никак иначе... При этом этот столбец может быть где угодно на листе и заголовок может быть на первой строчке, а может, например, на седьмой...
Ображив этот столбец, надо НА ОДИН СТОЛБЕЦ ЛЕВЕЕ читать, пока не встретим текст ОбъектNN (где NN - любые цифры) ?
и то, что находится в столбце "Данные" надо записать в БД ?
А БД кроме величины ещё что-то пишется
INSERT INTO Tabe1(ZNACHENIE) values (НайденнаяВеличина)
других полей нет?
Другие строчки (Объект2, Объект3 и т.д.) не интересуют?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2009, 12:36   #12
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

у quit рабочий код, как раз то что вам нужно. Остаётся только определится с листом в книге (заранее известен или нет), подправить код и сделать добавление данных в бд, в место стинггрида.
dr.Chas вне форума Ответить с цитированием
Старый 02.12.2009, 12:48   #13
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

to dr.Chas ок, если рабочий. еще не проверяла.
to Serge_Bliznykov Меня интересует не ТОЛЬКО столбец, озаглавленный "Данные" (в экселевской таблице несколько таких столбцов - как пример столбцы "Данные" и "Данные1")... При этом этот столбец может быть где угодно на листе и заголовок может быть на первой строчке, а может, например, на седьмой. Обнаружив этот столбец, надо читать, пока не встретим текст ОбъектNN (где NN - любые цифры) - этот столбец может быть ЛЕВЕЕ столбца "Данные" на 1,2,N столбцов. и то, что находится в столбце "Данные" надо записать в БД. Запись происходит построчно. Если Столбец имеет имя Данные - и Объект=1, пишется число из столбца "Данные" в БД соответствующее строке где есть "Объект1". Если столбец имеет имя Данные - и Объект=2, пишется число из столбца "Данные" в БД соответствующее строке где есть "Объект2" и т.д. пока не появится пустое поле в столбце Имя. фух.вот =)

Последний раз редактировалось kate158; 02.12.2009 в 12:52.
kate158 вне форума Ответить с цитированием
Старый 02.12.2009, 12:54   #14
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
рабочий код
естественно код рабочий!
kate158, Вам нужно все таки какую то структуру определить для таблицы в Excel, иначе вам придется каждую страницу открывать и делать перебор, пример кода с перебором я Вам уже дал.
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 02.12.2009, 12:59   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

тогда действительно, код у quit, похоже, делает как раз то, что Вам нужно (ну единственное, выкинуть работу со StrinnGrid и добавить запись в БД)

единственное, я бы искал заголовок "Данные" в той же строке, где мы нашли заголовок "Имя" (или наоборот, ищем "Имя" в той же строке, где нашли "Данные") - я не представляю себе таблицу, где заголовок строк, сдвинут относительно заголовка столбцов (ну, если заголовки не многострочные, разуммется). впрочем, это мелкие технические детали. А в целом, благодаря quit - заготовка программы у Вас уже в руках...

удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2009, 17:13   #16
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
Печаль

извините меня за настойчивость..
код корректен, если данные находятся в одном месте. но ведь у меня столбец "Имя" может быть сдвинут влево от столбца "Данные"... может можно сделать добавление через 4 эдита координат ячеек с названием "Данные" и "Имя"?...

Последний раз редактировалось kate158; 02.12.2009 в 17:18.
kate158 вне форума Ответить с цитированием
Старый 02.12.2009, 17:24   #17
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
извините меня за настойчивость..
это наоборот хорошо! главное чтобы с пользой и для вас и для нас было
Цитата:
код корректен, если данные находятся в одном месте. но ведь у меня столбец "Имя" может быть сдвинут влево от столбца "Данные"...
если вы посмотрите внимательно, поиск Столбца 'Данные', то увидите, что он начинается с 1го столбика до того пока не будет пусто, соответственно поиск этого заголовка столбца, даже если он будет левее, всенепременно должен осуществляться..
Код:
          while Excel.Sheets[index_sheet].Cells[1,k].Text<>'' do
          begin
          //ищем столбец
             if Excel.Sheets[index_sheet].Cells[1,k].Value = 'Данные' then
                //записываем
             inc(k);
          end;
©Учиться, учиться и еще раз учиться!

Последний раз редактировалось quit; 02.12.2009 в 17:26.
quit вне форума Ответить с цитированием
Старый 02.12.2009, 17:52   #18
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

это понятно. если данные начинаются со второго столбца, а у нас сначала идет проверка
Код:
while E.Sheets[1].Cells[1,f].Value <> ''
...
if (E.Sheets[1].Cells[1,f].Value = 'Имя')
то, возникнет ошибка. данные могут начинаться с любой ячейки.

Последний раз редактировалось kate158; 02.12.2009 в 17:59.
kate158 вне форума Ответить с цитированием
Старый 02.12.2009, 17:58   #19
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

С этим согласен, проверка плохая, на что я в принципе и указал...
Сейчас рабочий день закончился, бежать надо Попробуйте в книге посмотреть на этот счет, точно не помню, но должны быть методы связанными областью страницы,которые ограничивают ее... Вам надо в эту сторону копать
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 02.12.2009, 18:40   #20
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Эх не удержался, когда-то я довольно таки неплохие парсеры екселя делал,
Дак вот из своего опыта скажу что столбцы если их заполняет человек то лучше указывать вручную
=================================== ==============
Так как порой люди такой феерический бред в таблички пишут,
незнаю канешно как в Вашем случае а мне пришлось делать обработчик прайс листов
Дак вот каждый поставщик имел любимое занятия раз в неделю\месяц менять формат своего прайса
дописывать к цене ".гр","гривен","$","доларов" и тд. и тп.
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!

Последний раз редактировалось DarkEvil; 02.12.2009 в 18:46.
DarkEvil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ипорт из экселя в акссес Власов А.С. БД в Delphi 30 17.09.2009 12:51
Перенос форм из Экселя в Ворд Nash1 Microsoft Office Word 5 07.07.2009 06:32
Перенести таблицы Экселя в Ворд Nash1 Фриланс 5 02.07.2009 09:46
из экселя в БД Shark2112 Microsoft Office Excel 1 16.10.2007 08:04
защитить лист экселя от копирования nextaty Microsoft Office Excel 11 01.12.2006 21:27