![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сменить запятую на точку [D5]
ffo © (2006-08-19 20:14:00)Как при запуске имеющегося файла Excel из моей программы программно установить в этом файле разделителем целой и дробной части точку (по умолчанию стоит как мы знаем в Excel2003 запятая). Ну то есть надо программно выполнить команду (в Excel) Сервис - параметры - международные - убрать галочку "использовать системные разделители" - посавить вместо запятой точку. Да...вот еще что... надо после окончания работы с программой вернуть все обратно (запятую)
ffo (2006-08-20 21:12:00) [1]guav и AntiUser! Большое спасибо за советы.
Все работает.
Anatoly Podgoretsky (2006-08-20 20:54:00) [2]Не в коня корм
AntiUser (2006-08-20 20:47:00) [3]Ну вот, пока ходил, Вам тут уже все, похоже расписали.
ffo © (20.08.06 20:17) [36]
> XLSeparator
Что я наделал...
Федор (извините за некоторую фамильярность), но как же так можно? Вам же guav ©уже ВСЁ расписал и разжевал.
Напишите у себя:
SHEET.CELLS[3, 2].NumberFormat := Format('000%s00', [Excel.DecimalSeparator]);
И будет не зависимо от версии Excel'я
guav (2006-08-20 20:43:00) [4]> [36] ffo © (20.08.06 20:17)
> XLSeparator - переменная строкового или символьного типа
var
XLSeparator:string;
begin
XLSeparator:= Excel.DecimalSeparator;
SHEET.CELLS[3,2]:=19.65;
SHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator])
end;
Anatoly Podgoretsky (2006-08-20 20:40:00) [5]Ну чтож у тебя есть возможность не писать, я даже не буду давать характеристики этой писанине.
Но поговорка Юпитер ты сердишься, значит ты не прав очень верна в твоем случае.
Второй вариант обратиться в персональную службу поддержки, а не в публичный форум.
И не тебе судить о моих ссылках, интеллекта не хватит.
ffo (2006-08-20 20:33:00) [6]
> Anatoly Podgoretsky
Просмотрел все твои ссылки и не нашел ни одной дельной. Одни разглагольствования и призывы к наказанию. Аnatoly Podgoretsky. Не занимал бы ты эфир
Anatoly Podgoretsky (2006-08-20 20:24:00) [7]ffo © (20.08.06 18:27) [28]
Разработчики думают иначе чем ты, поэтому и вынесли данную настройку в пользовательскик, а программиста, который себя ставит выше пользователя надо наказывать.
Тем более что это глобальные вещи, которые влияют на все экземпляры Экселя.
ffo (2006-08-20 20:17:00) [8]
> XLSeparator
Что я наделал...
Procedure ...
var
XLSeparator:variant;
begin
XLSeparator:= Excel.DecimalSeparator;
SHEET.CELLS[3,2]:='19.65';
SHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator]);
end;
Получил ошибку Format % invalid or incompatible with argument
guav (2006-08-20 19:14:00) [9]> [XLSeparator] у меня нет.
Я не достаточно понятно выразился ?
XLSeparator - переменная строкового или символьного типа которое берётся из св-ва Excel.DecimalSeparator !
Если пользователь екселя требует точку давай точку, если требует запятую давай запятую, подставляя соответствующий разделитель в данные своей программы при необходимости.
ffo (2006-08-20 19:04:00) [10]
> Таки непонятно, что мешает писать SHEET.CELLS[3,2].NumberFormat:
> =Format('000%s00', [XLSeparator]);
[XLSeparator] у меня нет. Я в Delphi5 работаю. Перешел бы на более познюю версию, да привязан в этой программе к нескольким серьезным комонентам.
guav (2006-08-20 18:54:00) [11]> SHEET.CELLS[3,2]:='19.65';
Если это число а не текст, то почему не пишется как число ?
SHEET.CELLS[3,2]:=19.65;
guav (2006-08-20 18:51:00) [12]
> ffo ©
> SHEET.CELLS[3,2].NumberFormat:='000.00';
Таки непонятно, что мешает писатьSHEET.CELLS[3,2].NumberFormat:=Format('000%s00', [XLSeparator]);, где XLSeparator взять из того св-ва которое отображает соответствующую настройку экселя ?
ffo (2006-08-20 18:49:00) [13]
> Может программа твоя зарвалась и требует лишнего?
Лишнего не требует...наоборот надо бы ее расширить, да все времени нет
Virgo_Style (2006-08-20 18:40:00) [14]собственно, а зачем надо менять?
vrem (2006-08-20 18:39:00) [15][28] ffo © (20.08.06 18:27)
Вопрос в другом - такие действия, как описываешь - изменять/восстанавливать настройки действительно необходимо для реализации алгоритма программы твоей? Может программа твоя зарвалась и требует лишнего? как в магазине продавцы пристанут - а трезвы ли вы, а может в трубку подышать. пока соблюдаешь соцправила поведения в магазине можешь хоть смертельно пьяным быть - продавцы должны молчать.
ffo (2006-08-20 18:27:00) [16]
> Галинка
Ну давайте тогда стандартные настройки Excel-я установим, поработаем с нашей программой, а потом вернем все в исходное, как было (у пользователей).Только как? В том-то и вопрос.
Мало ли кто и что меняет при работе с Excel. Там люди может под свои нужды подстроили и забыли. На то и дана такая возможность - ставить точку или запятую в окне Международных настроек. Это только Anatoly Podgoretsky всех рублем за это предлогает наказывать, а разработчики Excel как видите думают иначе, позволяя делать так как кому нужно. И это правильно. Стандарты тоже дело наживное... раньше точка была, теперь запятая ... на то мы и астрономы, чтобы думать. Я же не предлогаю делать только как я хочу. Я предлогаю поработать, а потом вернуть в исходное.
Пока думаю так... либо сообщение надо искать в систему на смену системного разделителя перед запуском Excel (а потом сообщение на возврат всего в исходное не зависимо от того, что там было), либо надо инструкцию к программе писать....
ffo (2006-08-20 18:09:00) [17]
> Галинка
Пробую вместо DecimalSeparator := '.' послать SendMessage
Вернее не пробую, а разыскиваю параметрвы необходимого сообщения системе
Anatoly Podgoretsky (2006-08-20 15:32:00) [18]Галинка © (20.08.06 15:16) [23]
Конечно и информация о поддержке содержится в реестре, тот же самый excel.application.x и если поддержаны несколько то можно использовать любой.
Одно делать нельзя - нельзя менять пользовательские настройки, региональные настройки и т.д. за это надо рублем наказывать.
Anatoly Podgoretsky (2006-08-20 15:29:00) [19]ffo © (20.08.06 14:54) [20]
Программа такого делать ни в коем случае не должна, подобного программиста надо сразу увольнять.
Anatoly Podgoretsky (2006-08-20 15:25:00) [20]ffo © (20.08.06 14:49) [19]
Нет не понял, я за свое время насмотрелся и на дельфи 5.5 и на Виндоус 96