![]() |
#1 |
Участник
|
Некорректно вставляет из textbuffer в эксель
Здравствуйте!
В переменную записываются данные код, наименование и каталожный номер. Эта переменная потом принимается в textBuffer и вставляется в эксель. Проблема с полем inventTable.itemname - если оно превышает 33 символа то поле inventTable.N_InventCatId падает на следующую строчку. То есть слишком длинный itemname как бы выталкивает все следующие за собой поля на следующую строку. НО!) если вместо inventTable.itemname вставлять статичное значение любой длины, то в экселе все отображается корректно! В этом классе макросом регулируется ширина столбца, но не думаю что дело в этом. Помогите пожалуйста разобраться linestr = strfmt("%1\t%2\t'%3" , inventTable.itemId,inventTable.itemname,inventTable.N_InventCatId); textBuffer.appendText(linestr); currentRow++; currentRow --; textBuffer.toClipboard(); xExcelSheetManager.selected(startRow ,1); excelSheet = xExcelSheetManager.sheet(); cell= excelSheet.Range(strfmt("A%1", startRow)); cell.Paste(); |
|
![]() |
#2 |
Участник
|
Не присутствуют ли в наименовании номенклатуры спецсимволы?
|
|
|
За это сообщение автора поблагодарили: at5454 (1). |
![]() |
#3 |
Участник
|
в моем конкретном случае есть только фигурные скобки
|
|
![]() |
#4 |
Участник
|
Строка может содержать непечатаемые символы (\n - например).
Удалить ненужные символы можно функцией strrem(). Или при помощи strkeep(), наоборот оставить только нужные символы. |
|
![]() |
#5 |
Участник
|
Как вариант - обрамлять вставляемый текст двойными кавычками. Тогда и спецсимволы попадут в Excel и корректно там обработаются.
Но при этом надо учитывать, что если внутри передаваемой строки тоже окажется символ двойной кавычки, Excel это воспримет, как окончание вводимого поля и обработает соответственно. Чтобы избежать этого, достаточно удвоить все внутренние двойные кавычки. Примерно так: X++: strVal = strReplace(strVal, '"', '""');
__________________
Здесь могла быть Ваша реклама! |
|
|
![]() |
||||
Тема | Ответов | |||
Чудеса TextBuffer | 13 | |||
Вставка в Excel из TextBuffer. Кодировка | 14 | |||
TextBuffer: не находит знак переноса строки | 7 | |||
Вывод в эксель | 1 | |||
Axapta виснет на TextBuffer::replace | 3 |
|