Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel, "." или "," для дейстивительных чисел, как програмно это сделать 
:(
    Опции темы
sgentstuff
Дата 1.7.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



1.
Код

ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :='231.232';


excel как разделитель вещественных чисел использует "," как программно поменять это свойство на "."

2. 
Код

ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :='0.000';


а это число excel  привращает в просто в 0, как задать формат числа? 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
nworm
Дата 1.7.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот такой VBA-шный макрос это делает
Код

Sub Макрос1()
    With Application
        .DecimalSeparator = "."
        .ThousandsSeparator = " "
        .UseSystemSeparators = False
    End With
End Sub

А так, в Exel же есть кнопка "Макрос->Начать запись..." 
PM MAIL WWW   Вверх
sgentstuff
Дата 1.7.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(nworm @ 1.7.2006,  15:24)
Вот такой VBA-шный макрос это делает
Код

Sub Макрос1()
    With Application
        .DecimalSeparator = "."
        .ThousandsSeparator = " "
        .UseSystemSeparators = False
    End With
End Sub

А так, в Exel же есть кнопка "Макрос->Начать запись..."

а как из Delphi это сделать?
 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Romikgy
Дата 1.7.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



   
ExcelApp.DecimalSeparator = ".";
 smile  smile  


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sgentstuff
Дата 3.7.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



о это просто, сразу видно - эксперт 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
sgentstuff
Дата 4.7.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



пишу вот так, но почему-то ошибка

Excel.DecimalSeparator:= '.';

user posted image 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Romikgy
Дата 4.7.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



sgentstuff, а эксель у тя какой? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sgentstuff
Дата 4.7.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2000 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Romikgy
Дата 4.7.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(sgentstuff @  4.7.2006,  12:51 Найти цитируемый пост)
2000 

нет у 2000 этих функций smile
так что прийдет на время работы твоего приложения менять системные настройки,
HKEY_CURRENT_USER\Control Panel\International
sDecimal здесь строкой хранится какой в системе десятичный разделитель,
 или юзать те которые есть
Код

var sx: string;

sx:='231.232';
sx:=StringReplace(sx,'.',DecimalSeparator,rfReplaceAll);
sx:=StringReplace(sx,',',DecimalSeparator,rfReplaceAll);
ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :=sx;

теперь всегда будет работать  

Это сообщение отредактировал(а) Romikgy - 4.7.2006, 14:37


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sgentstuff
Дата 5.7.2006, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



если я подключу такую штуку 

Код

uses
Excel2000;


будет она работать в 98 виньде?
 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
sgentstuff
Дата 5.7.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Romikgy @ 4.7.2006,  14:14)
Цитата(sgentstuff @  4.7.2006,  12:51 Найти цитируемый пост)
2000 

нет у 2000 этих функций smile
так что прийдет на время работы твоего приложения менять системные настройки,
HKEY_CURRENT_USER\Control Panel\International
sDecimal здесь строкой хранится какой в системе десятичный разделитель,
 или юзать те которые есть
Код

var sx: string;

sx:='231.232';
sx:=StringReplace(sx,'.',DecimalSeparator,rfReplaceAll);
sx:=StringReplace(sx,',',DecimalSeparator,rfReplaceAll);
ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :=sx;

теперь всегда будет работать

на эту строчку
Код

News:=StringReplace(News,'.',DecimalSeparator,rfReplaceAll);


вот такую ошибку пишет
[Error] Unit1.pas(125): Incompatible types: 'TReplaceFlags' and 'Enumeration'

может что-то подключить надо

Добавлено @ 11:06 
надо вот так

Код

News:=StringReplace(News,'.',DecimalSeparator,[rfReplaceAll]);
 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Marriage
Дата 5.7.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

try
 ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :='231.232';
except
 ExcelApp.ActiveSheet.Range['D1', 'D1'].Value :='231,232';
end;

или не то  ??? 


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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