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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов по Excel 
:(
    Опции темы
kwotz
Дата 17.3.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 25
Регистрация: 6.1.2007
Где: Майкоп

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



1. В процессе работы проги получаются числа типа «1236,603462489653». После сохранения в Эксель получается 
«123 660 346 248 969». Как сделать так, чтобы в ячейке Экселя было также как и в Делфи? (Выгружаю в Эксель такой строкой:
Код

Excel.ActiveWorkBook.WorkSheets[1].Cells[Rows+Rows_i,4]:=Edit1.Text;
)
2. Как проверить существует ли файл по пути 'c:\1.xls'? 
3. Я открываю файл
Код

Excel:=CreateOleObject('Excel.Application');
Excel.WorkBooks.Open('c:\1.xls');

Но если файл уже открыт, то вылетает сообщение, что файл существует и предлагает его заменить. Как сделать так, чтобы прога автоматически закрывала этот файл с сохранением (даже если не она его открывала) или просто занесла в этот открытый файл изменения и сохранила его?   smile 

PM MAIL   Вверх
Неопытный
Дата 17.3.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У Меня тоже вопрос по данной теме.
Получаем число типа Float, н-р 123657,1212384 
Как в его отформатировать, чтобы в ячейке Excell оно выглядело 123 657, 12, то есть имело формат
0.00, с разделением тысяч
PM MAIL   Вверх
Insert
Дата 17.3.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Albinos_x
Дата 17.3.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



1. Установить в Эксель формат ячейки текстовый. Но надёжней, чтоб при форматировании ячейки он не возвращал обять числовой формат сделать так:
Код

Excel.ActiveWorkBook.WorkSheets[1].Cells[Rows+Rows_i,4]:=''''+Edit1.Text;

этот код добавит перед числом знау апострофа, эксель его не покажет, т.к. распознает это как текстовый формат ячейки, но зато число отобразится как нужно...
2. 
Код

if FileExist() then
   begin
   // есть файл
   end
   else
   begin
   // нет файла
   end;

3. Открывать эксель не новым сервером, а присединяться к запущенному серверу. там проверять все открытые книги.

Добавлено @ 13:05 
Цитата(Неопытный @  17.3.2007,  09:24 Найти цитируемый пост)
Как в его отформатировать, чтобы в ячейке Excell оно выглядело 123 657, 12, то есть имело формат

Код

ExcelApplication1.Range['C'+inttostr(rr+2),EmptyParam].NumberFormat:='#,##0.00';

Цитата(Albinos_x @  17.3.2007,  12:53 Найти цитируемый пост)
Установить в Эксель формат ячейки текстовый.

как сделать, есть в здесь: http://forum.vingrad.ru/topic-84634.html
Код

ExcelApplication1.Range['C1',EmptyParam].NumberFormat:='@';



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Неопытный
Дата 19.3.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А как процентный формат установить

Добавлено @ 17:22 

 
Цитата


 ExcelApplication1.Range['C'+inttostr(rr+2),EmptyParam].NumberFormat:='#,##0.00'; 

Нельзя установить свойство NumberFormat класса ... 
- не работает
PM MAIL   Вверх
Неопытный
Дата 19.3.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть число типа float, н-р 0,000000000134.
После записи его в ячейку Excell, оно выглядит как 0(и значение 0) - почему.
Нужно чтобы значение ячейки не было изменено, а имело формат, например, 0.00 
Подскажите пожалуйста как быть. (Ухищрения со строками не желательны)
PM MAIL   Вверх
Albinos_x
Дата 19.3.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(Неопытный @  19.3.2007,  17:14 Найти цитируемый пост)
- не работает

сделай так:
Код
...
ExcelApplication1.Range['C'+inttostr(rr+2),EmptyParam].NumberFormat:='# ##0.00'; 
...


это просто некоторые особенности при работе в разных версиях Excel, этот должен работать... по идее... для стандартных настроек...

или используй функцию с www.delphikingdom.com 
Код

function XL_GetNumberFormat(XLApp: ExcelApplication): String;
begin
Result := Format('#%s##0%s%s', [XLApp.International[xlThousandsSeparator, lcid], XLApp.International[xlDecimalSeparator, lcid],
                                                         StringOfChar('0', Integer(XLApp.International[xlCurrencyDigits, lcid]))]);
end;



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Неопытный
Дата 20.3.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Указал формат # ##,000000000000, Записал в ячейку 
Затем изменил формат ячейки на # ##,0000, значение изменилось на 0.00
B еще почему 0 в целой части не отображается: ,03 - 0,03. Как сделать, чтобы отображалось?
PM MAIL   Вверх
ilya198293
Дата 16.8.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

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



А вед действительно не работает: 
Код
 
    Report.Range['D9','F20'].NumberFormat:='0.00'; 

Вроде по макросам в Excel идёт текст:
Код

    Range("D9:F20").Select
    Selection.NumberFormat = "0.00"


говорит что "Нельзя установить свойство NumberFormat класса Range".
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
ilya198293
Дата 17.8.2007, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

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



Как говорится утро вечера мудренее...
Оказывается формат нужно указывать с учётом региональных настроек
вместо
Код

Report.Range['D9','F20'].NumberFormat:='0.00'; 

нужно писать 
Код

Report.Range['D9','F20'].NumberFormat:='0,00'; 

ну или у кого что
хотя сам VB отображает формат с точкой при настройках с запятой.
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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