Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel и Delphi -- загвоздка. Как сделать числа числами? 
:(
    Опции темы
Алекс С.
  Дата 27.8.2002, 22:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может кто подскажет как обойти/исправить такую "умную" экселевскую фишку, как автоматическая конвертация вещественных чисел, после того как их загрузили в клетки Экселя. Дело в том, что насколько я понимаю, в клетки можно записать только строки, т.е. когда пишу данные пользую FloatToStr и дальше вставляю string-и туда, куда нужно. Но тут возникает такая проблема -- несмотря на предварительное и последующее форматирование клеток, Эксель продолжает считать введённые данные строками (в правом верхнем углу ещё появляется такой зелёный треугольничек). Мелкософт в файле помощи предлагает чудовищное решение данной проблемы когда речь идёт о переводе целой области в числа. Да и поодиночке не знаю как это сделать (программно, в смысле) -- пишущий макро плейер не "ловит" процесс перевода, поэтому VBA кода тоже нет.
Может уже кто сталкивался с подобной проблемой? Подскажите, пожалуйста!
  Вверх
Vit
Дата 27.8.2002, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Всё-таки Excel это не база данных... Чисто теоретически попробуй обратится не через OLE, а через DAO. Посмотри у нас в FAQ  - там описан этот способ, только когда будешь писать кверю на создание таблиц, попробуй указать именно те типы столбцов которые должны быть.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Алекс С.
Дата 28.8.2002, 00:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да я и не пытаюсь пользовать Эксель в качестве БД, мне нужно просто составить красивую и простую в понимании смету. Для этого я ввожу "сырые" (из сети, БД и т.д.) данные по определённому формату в одну книгу, и хочу чтобы мне эти данные моя прога согласно определённым закономерностям разбросала по шаблонам смет. Вот и всё! Я конечно не знаю, может быть это можно сделать и как-то по другому (например макросами), но меня вполне устраивает и медлительность и некоторая ненадёжность в данном случае (если её можно было бы избежать, то это было бы конечно здорово, но я не знаю как свести её к нулю).
Для всего этого и затеян весь сыр-бор. Самое прикольное, что буквально в одну колонку числа вводятся и становятся числами, а в соседней так и остаются строками при абсолютно одинаковом форматировании клеток. Как я не пытался определить хоть какую-нибудь закономерность в действия Экселя, всё вышло впустую. Именно поэтому мне кажется, что способ подключения (OLE, DAO) не играет особой роли, хоть я это обязательно попробую.
Впрочем, я уже готов пойти и извращенческим мелкософтовским путем, главное, чтобы пахало. Так что если кто знает как оформить Paste Special/Multiply в Дельфи, напишите пожалуйста маленький примерчик.
Ещё раз спасибо и прошу прощения, если мои просьбы и вопросы звучат слишком глупо -- я всего лишь начинающий  :withstupid
  Вверх
adminlion
Дата 28.8.2002, 04:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Worksheets("Sheet1").Range("B1").FormulaR1C1 = "=SQRT(R1C1)"
PM MAIL   Вверх
Алекс С.
  Дата 30.8.2002, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В общем ответ на собственный вопрос. Пока что обойти эту загвоздку получилось только копируя и вставляя данные из буфера обмена (вроде бы умные люди пишут, что так даже быстрее). Тогда Эксель признаёт числа числами. Есть одно "но" только -- почему-то не сохраняется форматирование клеток, в которые вставляется содержимое буфера. Ну да и ещё надо куда-нить сохранять то, что валяется в буфере перед собственным его использованием. Кстати, ещё одна фишка, которую я обнаружил чисто методом "научного тыка" -- это использование метода PasteSpecial для вставки из буфера, который освобождает от множества ненужных нюансов, как то ввод "лишних" параметров и позволяет вставлять данные в отдельную клетку, а не в целую область.
PM MAIL   Вверх
P&$
Дата 2.9.2002, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



www.delphikingdom.com/helloworld/excel3.htm
http://xxibek.com.ua/compiler/texts/excelapp.htm
Загляни сюда, может найдешь что нужное. :)
PM MAIL   Вверх
Vit
Дата 4.9.2002, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Ещё раз предлагаю использовать DAO (пример в нашем FAQ) - там ты обозначишь колонку как поле типа integer и будешь туда писать сразу цифры (а никакие не строки, без всякой там конвертации), тем более что если ты будешь использовать для создания листа 'Create Table' - что я настоятельно рекомендую, то ты прямо укажешь тип данных в столбце.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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