powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / excel + builder
7 сообщений из 7, страница 1 из 1
excel + builder
    #32696172
Топор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
void __fastcall TExcel::toExcelCell(int Row,int Column, Variant data)
{
try{
Variant cur = Sh.OlePropertyGet("Cells", Row,Column);
cur.OlePropertySet("Value", data); // здесь вылетает
} catch(...){ }
}/* toExcelCell() */

пишет что не верный тип переменной, если data "текстовой"
если числовой - то все нормально, как быть?
...
Рейтинг: 0 / 0
excel + builder
    #32696382
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"текстовой" случаем не AnsiString?
надо использовать char* (AnsiString.c_str()).
...
Рейтинг: 0 / 0
excel + builder
    #32696405
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде двусмыслено получается, если подробно, то примерно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void __fastcall TExcel::toExcelCell(int Row,int Column, Variant data)
{
 try{
 Variant cur = Sh.OlePropertyGet("Cells", Row,Column);
  switch (data.VType)
  {
   case vtString:
   case vtAnsiString: 
    cur.OlePropertySet("Value", reinterpret_cast<char*>(data.VString));
   break;
   default:
    cur.OlePropertySet("Value", data);
  } 
 }
 catch(...){ }
} /* toExcelCell() */ 
...
Рейтинг: 0 / 0
excel + builder
    #32696782
Топор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но вот еще в чем проблема ...
передается значение типа "095", а в эксель заносится "95", с чего он нули обрезает?
...
Рейтинг: 0 / 0
excel + builder
    #32696795
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТопорСпасибо, но вот еще в чем проблема ...
передается значение типа "095", а в эксель заносится "95", с чего он нули обрезает?

А это уже от свойств ячейки зависит. Если указано, что в ней отображаются числовые данные, то все ведущие нули удаляются :). Надо установить в свойствах ячейки формат отображаемых данных в символьный (или текстовый)...
...
Рейтинг: 0 / 0
excel + builder
    #32696804
Топор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо установить в свойствах ячейки формат отображаемых данных в символьный (или текстовый)...[/quot]
Есть ли рабочий код для формата ячейки?
На дельфи нашел, под билдер чето не прокатило то что я переделал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function SetFormatRange(sheet:variant;range:string;
  format:string):boolean;
begin
 SetFormatRange:=true;
 try
  E.ActiveWorkbook.Sheets.Item[sheet].Range
   [range].NumberFormat:=format;
 except
  SetFormatRange:=false;
 end;
End;
переделал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void __fastcall TExcel::SetFormatRange(Variant sheet, String range, String format)
{
 try{
  Eapp.ActiveWorkbook.Sh.Item[sheet].Range[range].NumberFormat=format;
 }catch(...){
  }
}
ругается на
ActiveWorkbook, потом что у Ыр есть Item и т.д.

может есть у кого нормальный код?
...
Рейтинг: 0 / 0
excel + builder
    #32697585
Топор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем сапасибо, сам все решел
Sh.OlePropertyGet("Cells", Row,Column).OlePropertySet("NumberFormat", "@");
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / excel + builder
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]