Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.12.01;
Скачать: CL | DM;

Вниз

Быстрый импорт таблицы Excel   Найти похожие ветки 

 
Novice   (2013-06-12 18:41) [0]

Здравствуйте! Нужно импортировать в программу(ListView or StringGrid) таблицу Excel. Подскажите как это сделать максимально быстро и желательно попроще? Нагуглил пару способов, но все они в основном перебором строк и достаточно медлительны, а в таблице больше 10 000 строк и процесс занимает очень много времени :(


 
robt5   (2013-06-12 18:58) [1]

а ты формат файла нагуглил?


 
Novice   (2013-06-12 20:08) [2]

Формат файла таблицы:xls a потом хочу ListView or StringGrid  сохранять в текстовый файл. С базами данных связыватся не очень охота. Как сохранять в текстовый файл
знаю а вот быстро импортировать пока не получается :-(


 
[ВладОшин] ©   (2013-06-12 20:39) [3]

сколько данных
за сколько секунд
какой код

зы
самый простой способ - приравнять вариантные массивы


 
Jeer ©   (2013-06-12 20:40) [4]

>знаю а вот быстро

Смешно.. или нет?


 
megavoid ©   (2013-06-12 21:08) [5]

[2]
Пишем в google "delphi xls stringgrid"
Первая же ссылка: http://www.delphisources.ru/pages/faq/base/xls_to_stringgrid.html

Копипастим код, проверяем на xlsx с 12000 строк - перебирает за 2 секунды. Много? раздираем xlsx (это обычный zip), парсим xml парсером или вручную.


 
[ВладОшин] ©   (2013-06-12 21:09) [6]


> больше 10 000 строк

последний раз  отказался от 2 млн. строк :)
т.к.
1. ёксель стока не берет
2. хватит и 1 :)
3. не важно после 1 и 2
однако, не сказал бы что долго.. ошибку ждать пришлось

а около 500 000 строк на 6 столбцов,
примерно 350 мб.
приемлимо, в целом, если комп не 486 дх2 на 120Мг


 
robt5   (2013-06-12 21:52) [7]


> Формат файла таблицы:xls

это не формат файла, а расширение - тупо три буквы после точки


 
Novice   (2013-06-12 22:32) [8]

Спасибо Мегавойд! Скорость впечатляет! Интересно на каком ПК можно
достигнуть таких результатов?


 
megavoid ©   (2013-06-12 23:11) [9]

[8] на любом достаточно современном. У меня i5-3570K, но это не суть, на шестилетнем Q6600 субъективно на секунду дольше, в файле ~12000 строк, 10 столбцов.


 
Novice   (2013-06-13 01:59) [10]

Испытал,все отлично и быстро работает но в конце импорта вылетает окно ошибки
закрытия Excel :-(   Хотя данные успешно в грид попадают. Как бы избежать этой
ошибки или хотя бы спрятать? :-)


 
Novice   (2013-06-13 02:01) [11]

Ошибка при работе с Офис 2010,на других не проверял.


 
Германн ©   (2013-06-13 02:05) [12]


> Novice   (13.06.13 01:59) [10]
>
> Испытал,все отлично и быстро работает но в конце импорта
> вылетает окно ошибки
> закрытия Excel

Ты хотя бы скриншот сообщения об ошибке показал.


 
Anatoly Podgoretsky ©   (2013-06-13 11:21) [13]

Ты что пытаешь узнать главную военную тайну.
(с) Мальчиш Кибальчиш


 
Novice   (2013-06-13 12:38) [14]

http://www.foto-me.ru/v.php?id=faf147cbaa9e963ba7d580dff27a23b9


 
megavoid ©   (2013-06-13 12:39) [15]

[14] это победа, новису зачёт )))))


 
картман ©   (2013-06-13 12:46) [16]


> Novice   (12.06.13 22:32) [8]
>
> Спасибо Мегавойд! Скорость впечатляет!

а как сделать медленнее? Мне так, для общего развития.


 
megavoid ©   (2013-06-13 13:04) [17]

добавить столбцов, этак до 200


 
картман ©   (2013-06-13 13:19) [18]


> добавить столбцов, этак до 200

ну да, как я не догадался?


 
megavoid ©   (2013-06-13 13:29) [19]

Ну, допустим, не range получить, а поперебирать, каждый раз обращаясь к эскелю за значением следующей ячейки


 
Novice   (2013-06-13 14:49) [20]

В чем может быть ошибка не подскажете? Не оч.чтоб нервирует окошко Excel
но неприятно :-(



Страницы: 1 вся ветка

Текущий архив: 2013.12.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
4-1238947064
MultIfleX
2009-04-05 19:57
2013.12.01
Имена сеанса и клиента текущщей сессии пользователя


15-1371232669
wl
2013-06-14 21:57
2013.12.01
Дурацкий вопрос)


15-1371155402
Юрий
2013-06-14 00:30
2013.12.01
С днем рождения ! 14 июня 2013 пятница


2-1361265627
kelpie1988
2013-02-19 13:20
2013.12.01
Как создать dll c вложенными функциями?


15-1370809802
Юрий
2013-06-10 00:30
2013.12.01
С днем рождения ! 10 июня 2013 понедельник