|
3 / 3 / 0
Регистрация: 01.07.2010
Сообщений: 53
|
|
Отображение данных из Excel в TStringGrid.05.11.2010, 08:22. Показов 13965. Ответов 40
Метки нет (Все метки)
0
|
|
| 05.11.2010, 08:22 | |
|
Ответы с готовыми решениями:
40
корректное отображение импортированных данных в формулах excel Импорт из MS Excel в TStringGrid C++ XE7 -Чтение файла с FTP устройством на Android и отображение его в TStringGrid |
|
3 / 3 / 0
Регистрация: 01.07.2010
Сообщений: 53
|
|
| 28.12.2010, 08:23 [ТС] | |
|
нет,мне нужно загружать также таблице только на других ормах!И не в один StringGrid!Нужно что бы это всё можно было делать на нескольких формах!на каждой форме и кнопка загрузки и сама таблица(сразу скажу что таблицы разные),и таких копий оч много,нужно чтоб на каждую форму по таблице загрузить!а там уже я сам,прогсто вылазеет ошибка:
ExApp := CreateOleObject('Excel.Application');- на этой строке ошибка такая: Undeclared identifier:'CreateOleObject' что делать не знаю=()а прогу на сегодня нужно доделать=(((
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||||||||||||
| 28.12.2010, 11:07 | ||||||||||||||||||
|
Т. е., в том модуле, который вызвает CreateOleObject() должно быть написано:
Эту процедуру можно использовать на всех формах для различных таблиц типа TStringGrid. Предположим, что процедура описана в модуле Unit1. Пример вызова:
1
|
||||||||||||||||||
|
3 / 3 / 0
Регистрация: 01.07.2010
Сообщений: 53
|
|
| 14.01.2011, 11:57 [ТС] | |
|
здравствуйте ещё раз!дайте совет пожалуйста по более сложному вопросу=\
я вообще не знаю как это вообще возможно сделать! При нажатии на кнопку открывается opengialog в котором выбираем не один файл а сразу много,ну например!20 или 30!не важно сколько!!для моей программы нужно 300 таблиц загружать одновременно,т,е раньше я делал по нажатию кнопки на каждой форме загружать свою таблицу,но когда я стал загружать 10 и более таблиц,я задумался=\для каждой формы загружать свою таблицу это оч мучительно,а мремени раймёт минимум минут 40! вобщем мне нужно загружать много таблиц одновременно на разные формы,и ещё,!!!будут таблицы с названием 1,2,3,4....итд!то есть таблица под названием 1 для первой формы,файл под названием 2 для второй формы таблицы т.е какая цифра на ту форму в StringGrid и загружать!если возьмём две таблицы 1 и 5-значит загружаться должно в первую и пятую! как это вообще сделать возможно???и возможно ли?=\ подскажие если не сложно хотябы чуть чуть!
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 14.01.2011, 23:18 | |
|
А может не нужна для каждой загрузки отдельная форма? Действия, наверное, однотипные? Возможно, для обработки даже таблица не нужна.
Вернее - саму обработку можно делать на массиве.Предлагаю рассмотреть такую архитектуру: Написать базовую процедуру, которая должна работать так: - Загрузка данных из таблицы Excel в массив. - Обработка массива. - Выгрузка выходных данных. Далее, пишется вызывающий код, на вход которого поступает массив Excel-файлов. Этот код с помощью базовой процедуры последовательно обрабатывает все файлы из входного массива. Можно вести обработку файлов в многопоточном режиме. Выделить, на это, скажем, 3-5 потоков (с учётом того, что загрузка идёт через OLE-механизм). --- RedBull, на сколько такой вариант приемлем?
0
|
|
|
3 / 3 / 0
Регистрация: 01.07.2010
Сообщений: 53
|
|
| 16.01.2011, 14:03 [ТС] | |
|
ммм,я вообще нифига не монял что ты написал=)))
но мне кажется это всё равно лучше=) но я вообще не представляю как это=\ не,для меня легче будет сделать так=) разные формы и загрузка таблиц на все формы одним кликом=)тольк я не знаю как это сделать=\ с учётом какая цифра в имени на такую форму и загружать! с чего лучше всего начать?:cofee2:
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 17.01.2011, 12:27 | |
|
RedBull, предлагаю сделать в виде MDI приложения. Проект приложен к этому сообщению.
Работает так: - Для открытия можно выбирать отдельный файл, группы файлов или целые папки. - Ведётся список открытых файлов. - Для загрузки создаётся только один экземпляр Excel. - Загрузка выполняется в основном потоке. В дальнейшем загрузку можно реализовать в отдельном потоке.
1
|
|
|
3 / 3 / 0
Регистрация: 01.07.2010
Сообщений: 53
|
|
| 02.02.2011, 14:36 [ТС] | |
|
большое спасибо за такую программу!очень удобная!с такими ни разу в жизни не работал
![]() теперь возник вопрос: как задать в поиск строки во втором столбце всех таблиц!причём каждая таблица за свой Shape на другой форме!имеется интервал который вводит пользователь! К примеру: пользователь вводит интервал I)-0,15 II)1,3!вводит ещё №строки в edit!идёт поиск этой строки во всех таблицах во 2 столбце!когда находит,смотрит если это число в этой строке больше интервала то Shape красный,если это число в строке между интервалом значит желтый,и если меньше тогда зелёный!причём каждая таблица имеет свой Shape!и только в нем она должна менять цвет!ещё оч круто было бы если:название таблицы(число) соответствовало своему Shape!т.е если таблица под названием 16 то она и будет менять цвет только в Shape16!и так далее! вот есть готовый код из старой программы но для этой нужно делать что то новое,с такими программами я ещё не сталкивался!так что я лол ![]() ![]() ________________________________________ ________ var i:Integer; k:real; begin i := strtoint(form2.edit1.text); берёт значение из интервала form4.label3.Caption:=form1.stringgrid1. cells[0,i]; //показывает число от первой строки bitbtn1.Caption:=form1.stringgrid1.cells[1,i]; k:=strtofloat(bitbtn1.Caption); form4.label4.Caption:=floattostr(k); //показывает число от второй строки if (k<=1) then begin form3.shape1.brush.color:=clLime end ; // определяет число больше или меньше,присваивается свой цвет Shape if (k>1) and (k<=2)then begin form3.shape1.brush.color:=clYellow end; if (k>2) then begin form3.shape1.brush.color:=clred end;
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 02.02.2011, 21:25 | |
|
RedBull, я в субботу этой темой займусь.
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 10.03.2011, 16:29 | |
|
Выкладываю вариант решения.
1
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 10.03.2011, 16:52 | |
|
Ради тривиального импорта данных из XLS(X)-контейнера нет никакой нужды городить огород с Excel. Вполне достаточно воспользоваться компонентом Axolot XLSReadWriteII 4 - он прекрасно работает с контейнером напрямую, исключительно удобен в программном его использовании и не требует присутствия в системе установленного Excel.
0
|
|
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
| 10.03.2011, 17:12 | |
|
mss, и сколько же зелени нужно заплатить за сей шедевр???
В Гугл можешь не посылать, уже был там... Ты для всех цены озвучь, плиз!!!
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 10.03.2011, 17:22 | |
|
> сколько же зелени нужно заплатить за сей шедевр?
А что, Офис дешевле ?) Или в нашем царстве-государстве всякий юзер исправно пользует искл-но лицензионный Офис ?) Или что-то мешает пользовать НЕлицензионный TXLSReadWrite ?) Вот то-то и оно)
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||
| 10.03.2011, 17:31 | ||||
![]()
0
|
||||
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
| 10.03.2011, 17:34 | |
|
mss!
Что-то я сомневаюсь, что ты для своих нужд платил за этот опус свои кровные... В лучшем случае платила фирма где ты работаешь... Или я не прав???
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 10.03.2011, 17:46 | |
|
Зачем платить-то ?)
Продукт шароварный) Не нравится демо-ограничения ? Ковырнул пару байт - вот тебе и полнофункциональный. Ответственность наступит только в случае коммерч.применения, о котором в задании, равно как и об именно олей-доступе, нет ни слова.
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 03.04.2011, 00:20 | |
|
RedBull, по результатам переписки в ЛС выкладываю проект с формой индикаторов. Набор индикаторов реализован на основе TStringGrid. Особенностью является то, что на самом деле, эта таблица не содержит данных.
Её ячейки используются только для индикации - их содержимое, цвет, текст, прорисовываются на основе внешних данных, взятых из FormMain.ListBox1. FormMain.ListBox1 - это основной элемент, связывающий данные. Размер таблицы индикаторов подбирается автоматически, в зависимости от количества прочитанных файлов. В инспекторе объектов можно менять количество столбцов таблицы. Количество строк подбирается автоматически во время работы программы.Форма индикаторов запускается в модальном режиме. Можно сделать её не модальной - если это удобнее.
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 10.04.2011, 17:04 | |
|
И ещё проект с сортировкой списка файлов. Определены 4 процедуры сортировки - по убыванию и возрастанию, по целочисленным значениям, записанных в строках и по строковым значениям:
SortListNumAsc(), SortListNumDesc(), SortListStrAsc(), SortListStrDesc().
1
|
|
|
0 / 0 / 0
Регистрация: 03.01.2012
Сообщений: 57
|
|
| 03.01.2012, 16:09 | |
|
Mawrat
А как прикрутить поиск одновременно со всех открытых файлов(форм) по тексту введенному в Edit на главной форме, и все найденные результаты поместить в отдельный грид?
0
|
|
|
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||||||
| 04.01.2012, 02:16 | |||||||||||
|
Поиск текста на листе книги MS Excel можно выполнить так:
Программа работает так: в Edit1 надо ввести искомый текст, затем нажать кнопку - запустится диалог выбора файла. Выбрать файл *.xls или *.xlsx. Программа запустит Excel, откроет в Excel выбранную рабочую книгу и выполнит поиск заданного текста на первом листе книги. Сведения обо всех обнаруженных совпадениях будут распечатаны в Мемо1. --- Для того, чтобы запрограммировать поиск в нескольких книгах достаточно взять этот код в качестве основы и добавить перебор книг. Каждую книгу открывать и обрабатывать так, как показано в коде. Если надо добавить обработку всех листов рабочей книги, для этого следует добавить цикл перебора листов:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 03.01.2012
Сообщений: 57
|
|
| 04.01.2012, 12:19 | |
|
Mawrat
Спасибо, но хотелось бы искать не из книги Exel, а уже из загруженных книг из Exel в StringGrid. Все, как у вас выше в программе + одновременный поиск во всех открытых гридах и занесения всех строк(в которых поле соответсвует условию поиска) в отдельный грид.
0
|
|
| 04.01.2012, 12:19 | |
|
Неправильное отображение даты при импорте данных из Excel в DataGridView
Расчет данных в Tstringgrid по формуле Импорт данных из Tstringgrid в Word
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|