![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Sanya01078 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
есть функция
function saveasexcelfile(stringgrid: tstringgrid; filename: string): boolean; Проблема в том что она сохраняет числа без запятой то есть у меня в stringGride число 6,33 а оно сохраняет 6 33 Подскажите где что-то не так!! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Открой полученный XLS, и посмотри, какой формат имеют ячейки с записанными в них данными... Особенно - те, что отображаются неправильно (Format -> Cells). Может понадобиться изменить NumberFormat ячейки перед тем, как писать в нее данные.
|
Sanya01078 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я извиняюсь может это и банально! Но не подскажете как переделать! Как переделать формат ячеек?
На тех что пишутся 63,22 когда наводишь есть выбор как сохранить!!! а на тех что 6,777 нечего нету!! И еще есть такое что если после запятой два числа все нормально а если 3 и более то не ставит запятую!!! Я уже пытался пере сохранить сделать в самом екселе но не получается когда загружаю в стрингрид все равно после запятой почему то 3 знака! как от этого избавиться? Добавлено через 7 мин. о вот еще только что сделал что во втором стирнггриде после перещетов матрицы поставил вывести данные флаот то стр Ф и поставил формат ффФиксед =2 сохранило нормально, а если вам нетрудно как сделать чтобы и заносимую таблицу из файла отформатировать?? Добавлено через 6 мин. Спасибо за помощь все я уже нашел!!! Проблему! Я просто при выгрузки таблицы в гринд поставил формат ячеек и все нормально!! И если вас не затруднит еще 1 вопрос а можно сделать что бы не 2 знака после запятой а 3 нормально сохранялось?? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Слушай, я не понимаю твоих объяснений, воспроизвести проблему не могу:
for col := 0 to stringgrid.colcount - 1 do прекрасно сохраняет число с любым количеством знаков после запятой (у меня в системе разделитель целой и дробной части - точка, запятая используется для отделения тысяч) : ![]() Естественно, если в Гриде будут не только числа, но и текст - такое работать не будет, надо будет проверять на число (TryStrToFloat), и в зависимости от результата присваивать либо текстовый либо General формат. |
Sanya01078 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
выдает ошибку Project Project2.exe raised exception class EOleException with message 'Нельзя установить свойство NumberFormat класса Range'. Добавлено через 13 мин. вот выкладываю все функции!! function xls_to_stringgrid(agrid: tstringgrid; axlsfile: string): boolean; может это поможет!! Сообщение отредактировано: Sanya01078 - 25.04.2010 14:12 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата выдает ошибку Если б я не проверив, написал прямо сюда - может быть и поверил бы тебе. Но нет, я ж как раз копировал из окна Дельфи, после того как все откомпилировалось, запустилось и отработало.Project Project2.exe raised exception class EOleException with message 'Нельзя установить свойство NumberFormat класса Range'. Вот и сейчас. Взял твои процедуры/функции, собрал проект, компилируется, работает, как и показано выше. Что я делаю не так? Тестировалось на Дельфи 2009 + WinXP SP3 + ExcelXP... Да и вообще: Цитата Нельзя установить свойство NumberFormat класса Range А где, собственно, работа с классом Range? Я-то работаю с экземпляром Cell, а не Range, уж не знаю, с чем ты работаешь... |
Sanya01078 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Уважаемый volvo я бы если все работало не писал!!
Я работаю на Delphi 7 + WindowsXp SP2+ excel2003! И опять при попытке сохранить с данными процедурами выскакивает та же ошибка! Если хотите я вам скину весь проект!! Сообщение отредактировано: Sanya01078 - 26.04.2010 10:22 |
Client |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
лучше прикрепи проект
![]() |
Sanya01078 |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот примерно так выглядит весь проект!
unit mainUnit; Сообщение отредактировано: Sanya01078 - 26.04.2010 11:21 |
Client |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
а закинуть папку с проектом в архив и залить? никому не захочется на форму все компоненты кидать
|
Sanya01078 |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот вам и весь проект!
Прикрепленные файлы ![]() |
Client |
![]()
Сообщение
#12
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
погонял проект.
если в стирнггриде вводить через точку то и будут тебе числа, через запятую - не числа. С 2007 офисом не работает, сохранял как 97-2003. Итог - все норм. И 1000*1000 размер - не хорошо. Сколько в екселе столбцов? Эскизы прикрепленных изображений ![]() |
Sanya01078 |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата И 1000*1000 размер - не хорошо. Сколько в екселе столбцов? то есть надо сделать меньше? В самом екселе помоиму более 1000 строк и столбцов! Добавлено через 3 мин. Client ОГРОМНОЕ СПАСИБО! И правда когда поставил разделитель дробной части точку все стало на свои места и сохраняет корректно!! А на счет сколько должно быть указано столбцов и строк не подкскажете? |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата И правда когда поставил разделитель дробной части точку все стало на свои места и сохраняет корректно!! Это до тебя только сейчас дошло, то, о чем тебе написали в посте №4? Или ты принципиально читаешь только определенно чьи-то ответы, а всех остальных - игнорируешь, а, умник? ![]() Цитата А на счет сколько должно быть указано столбцов и строк не подкскажете? Иди на MSDN.microsoft.com и читай, как определить количество задействованных строк/столбцов на листе Excel... За тебя это делать никому на фиг не надо. А то опять напишешь тебе, ты опять проигнорируешь, будешь упираться что "не работает", пока кто-нибудь еще не придет и не повторит... |
Sanya01078 |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата прекрасно сохраняет число с любым количеством знаков после запятой (у меня в системе разделитель целой и дробной части - точка, запятая используется для отделения тысяч) : В вашем объяснении я не увидел такого совета как поменять разделитель на компьютере!!! И попрошу будьте более корректней!! Я читаю все посты и пытаюсь исправить свои ошибки!! Спасибо ВСЕМ за помощь! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 18:28 |