| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: ActiveX/СОМ/CORBA > export from excel - delphi |
| Автор: Sed0Y 25.2.2010, 23:49 | ||||
| Добрый день. У меня есть документ Ексель, в нем какие-то значения к примеру
этот документ постоянно редактируется в бухгалтерии, а мне нужно получать данные с него, к себе на форму, то как с Делфи мне считать дынные с этого документа что бы небыло ситуации закрытия документа или какой-то ошибки.... я делаю это так:
xlapp.connect; // если в документе сделали изменение но не сохранили то на этом месте происходит ошибка - то как считать данные без сохранение, то есть если изменили данные на листе и не сохранили то все равно мы сумели считать эти изменения не сохраняя документ? xlapp.quit; // в таком случае, если документ открыт, то он закрывается а если это убрать и документ будет закрыт, то после закрытия программы будет в процессах висеть процесс екселя Короче говоря как считать с документа открытого другим пользователем на редактирование данные которые небыли сохранены (в документе)? |
| Автор: Sed0Y 26.2.2010, 03:04 | ||
| значит не стал париться и заморачиваться с XLApp.WorkBooks переделал на получение данных с ексель листа через АДО и выгружаю в Грид только вот столкнулся с проблемкой не могу решить первая строка в екселе экспортируется в рид как название Титла, что сделать что бы содержимое Листа было в гриде а не в залазило и в шапку (см. рисунок)? ![]() сделал экспорт так:
|
| Автор: dimaximo 25.4.2010, 13:10 | ||
Здравствуйте! Может кто сталкивался с этим, помогите, пожалуйста, решить проблемку. Использовал ниже представленный код для экспорта данных из Excel. Проблема в том,что тип данных "время" и в stringGridе,после перемещения отображаются в вещественном типе. Как можно из вещест.типа сделать тип время?
|
| Автор: Albinos_x 25.4.2010, 14:57 |
| проверяй форматирование ячейки в excel, если формат ячейки типа даты/время, значение перез занесением в форму приводи к нужному типу... |
| Автор: dimaximo 25.4.2010, 16:29 |
| Как можно поверить? Я в этом деле новичок, буду бесконечно благодарен за листинг |
| Автор: Albinos_x 26.4.2010, 09:12 | ||
проверить или написать конкретный код мне сейчас негде, но приблизительно так будет выглядить проверка на формат, через range:
как это прикрутить или использовать применительно к твоему коду думаю тебе не составит труда. удачи |
| Автор: dimaximo 26.4.2010, 12:15 |
| спс болшое |
| Автор: dimaximo 27.4.2010, 15:23 |
| Albinos_x, Подскажите, пожалуйста, для чего нужен символ '@' и как можно сохранить данные о времени в stringGrid в том виде в котором они находятся в Excel... |
| Автор: Albinos_x 27.4.2010, 20:38 | ||
это лучше спросить у разработчиков excel - почему они выбрали именно этот символ для меток форматирования ячеек)
в экселе много представлений даты/времени... какой именно интересует тебя? |
| Автор: dimaximo 28.4.2010, 14:16 | ||||||
понятно меня интересует форма представления времени "h:mm". Данные в формате "h:mm" считываются из Excel и заносятся в StringGrid уже в вещественном виде от 0...0,99.
То условие
что вы написали,я как понимаю,можно использовать для проверки ячейки в Excel на формат представления для её последующего форматирования. Может быть есть такое решение,которое преобразует "время" в вещественной форме обратно в "h:mm" |
| Автор: Albinos_x 28.4.2010, 15:21 | ||||||
для преобразования попробуй использовать команду:
Добавлено через 2 минуты и 38 секунд
время в компе храниться в вечестрвенном виде... целая часть - это сутки, дробная - время. Поэтому в любом случае перед выводом нужно использовать команды преобразования в нужный вид... или преобразовывать в ручную... |
| Автор: dimaximo 29.4.2010, 09:42 | ||
Спасибо большое за некоторые просветы...вобщем, получилось только так:
|
| Автор: Albinos_x 29.4.2010, 13:59 | ||
транная конструкция, а что так не прокатило:
|
| Автор: dimaximo 29.4.2010, 15:30 |
| попробывал...выдает ошибку Statement expected, but expression of type 'TDateTime' found Добавлено через 31 секунду параметр что ли какой-то упущен |
| Автор: dimaximo 29.4.2010, 16:01 | ||
пробывал вставлять конструкцию...не идёт
ни как не получается разобраться в этом |
| Автор: Albinos_x 29.4.2010, 16:25 | ||||||
хм... а если так:
Добавлено через 1 минуту и 30 секунд что-то ты перемудрил здесь.... в качестве адреса ссылка на ячейку не прокатит... Добавлено через 9 минут и 37 секунд Проверь, есть ли у XLApp.Cells.Item[r,k] свойство NumberFormat, если есть, то используй его, если нет, то для адресации по ячейкам (получения буквенного адреса) для XLApp.Range['A4','a3'] используй функцию, которую я приводил в теме http://forum.vingrad.ru/forum/topic-84634.html# :
|