|
|
#21 |
|
Участник
|
Цитата:
Сообщение от Gustav
Так, а чего? Он же никому не мешает - ни сортировке, ни обратной выгрузке куда-либо, ни работе функции ДЛСТР и т.п...
Ну, конечно, если хочется себя занять, то займите - никто Вас отговаривать не будет. Но кончится тем, что Вы поменяете ComExcelDocument_RU на выгрузку с использованием ADO и CopyFromRecordset - там этой проблемы нет ![]() - не эстетично - при обработке такого столбца (если по этим столбцам идет сравнение) придется избавляться от этого апострофа Может быть написать макрос, который бы удалял это апострофы перед открытием ?
__________________
Александр |
|
|
|
|
#22 |
|
Moderator
|
Его не видно на рабочем листе. Видно только в строке редактирования текущей ячейки. Если это уж так раздражает, ну, сделайте активной какую-нибудь другую ячейку, не из этой колонки перед предъявлением таблицы пользователю. К слову сказать, младший брат Excel - OWC Spreadsheet всегда автоматически добавляет апостроф к строке, если она может быть интерпретирована как число - независимо от того, поставили ли вы его сами или отформатировали ячейку как текст.
Цитата:
Цитата:
![]() P.S. Методом Range.PrefixCharacter можно найти, если таки соберетесь искать. Последний раз редактировалось Gustav; 24.02.2011 в 16:56. |
|
|
|
|
#23 |
|
Участник
|
Цитата:
апостроф в коде я проставляю следующим образом: account1 = strfmt("`%1", bankGroup.BankCorrAccount_RU); если Вы делаете по другому, пожалуйста напишите. Может быть из-за того, что неправильно ставлю апостроф у меня в экселе все видно?
__________________
Александр |
|
|
|
|
#24 |
|
Moderator
|
Да-с, возник у нас терминологический казус
Я назвал даму сэром, в смысле одинарную кавычку - апострофом и ввел Вас в заблуждение. Но с другой стороны ж в моем значении в самом начале указана именно одинарная кавычка. Ее и надо было попробовать...В общем, ладно. У Вас не то, конечно. У Вас - символ с кодом 96, а надо тот, который 39.
|
|
|
|
|
#25 |
|
Moderator
|
Цитата:
X++: {
ComExcelDocument_RU doc = new ComExcelDocument_RU();
COM xlApp;
COM wbook;
COM activeSheet;
COM range;
COMEnum2Object cellCollection;
COM cell;
COMVariant prefChar;
;
doc.NewFile('',true);
wbook = doc.getComDocument();
xlApp = wbook.Parent();
activeSheet = xlApp.ActiveSheet();
range = activeSheet.Range('A1:A100');
range.Value2("'30101810100000000859"); // 1. выводим значения с ведущим апострофом (одинарной кавычкой)
print 'Загляните в окошко Excel';
pause;
range.NumberFormat('@'); // 2. форматируем заполненный диапазон как Текст
cellCollection = new COMEnum2Object(range);
// 3. перебирая ячейки диапазона, удаляем ведущий апостроф, если находим
for (cell = cellCollection.getFirst(); cell; cell = cellCollection.getNext())
{
prefChar = cell.PrefixCharacter();
if (prefChar.bStr() == "'")
{
cell.Value2(cell.Value2()); // "удаляем" = переписываем значение само на себя
}
}
info('Еще раз загляните в окошко Excel');
}Вот, вроде всё работает: X++: {
ComExcelDocument_RU doc = new ComExcelDocument_RU();
COM xlApp;
COM wbook;
COM activeSheet;
COM range;
;
doc.NewFile('',true);
wbook = doc.getComDocument();
xlApp = wbook.Parent();
activeSheet = xlApp.ActiveSheet();
range = activeSheet.Range('A1:A100');
range.NumberFormat('@'); // предварительное форматирование КАК ТЕКСТ ячеек вывода коррсчета
range.Value2("30101810100000000859"); // выводим значения коррсчета БЕЗ апострофа
}
|
|
|
|
| За это сообщение автора поблагодарили: tolstjak (1). | |
|
|
#26 |
|
Участник
|
Большое спасибо за очень развернутый ответ. Все понятно.
__________________
Александр |
|
|
|
|
#27 |
|
Участник
|
Заработало
Забыл отписаться, все заработало через COM объект RecordSet, теперь для построения отчетов который выводятся в Excel, нет необходимости ставить сей продукт от MS, на каждую клиентскуб тачку.....
если интересно позже выложу подробности.
|
|
|