|
![]() |
#1 |
Участник
|
да смотрел, вот код:
X++: //Import from Mazzy forum public void InsertText(BookMark _bookMark, TextBuffer _text, int _workSheet = 1) { COM XLSWorkSheet, XLSrange; TextBuffer tempBuffer; // To store clipboard contents ; if (! m_comDocument) { throw error(StrFmt("@DIS6401", this.getApplicationName())); } else { // Initializing XLSWorkSheet object XLSWorkSheet = this.getWorkSheet(_workSheet); if (!XLSWorkSheet) throw error("@DIS6043"); // Initializing XLSRange object XLSrange = this.findRange(_bookMark,_workSheet); if (!XLSrange) throw error("@SYS27391"); XLSrange.select(); // Storing clipboard contents tempBuffer = new TextBuffer(); tempBuffer.fromClipboard(); // Preparing text to be inserted _text.toClipboard(); // Inserting text from clipboard XLSWorkSheet.pasteSpecial(1); // 1 - "Text only" mode // XLSWorkSheet.pasteSpecial(3); // XLSWorkSheet.PasteSpecial(COMVariant::createFromStr("Текст")); // XLSWorkSheet.pasteSpecial(-4163); // Restoring clipboard contents tempBuffer.toClipboard(); }// if return; } |
|
![]() |
#2 |
Moderator
|
Попробуйте сделать по аналогии с этим моим сообщением: Параметры pastespecial()
А именно: 1. Закомментируйте у себя строку "XLSrange.select();" - она ни к чему в моем случае 2. Вместо "XLSWorkSheet.pasteSpecial(1);" напишите "XLSrange.pasteSpecial(1);" Плюс обратите внимание вот на это: Ускорение экспорта в Excel - и там про терминал. Вы уверены, что буфер, передающийся в процедуру - тот, который нужен? Не происходит ли подмена на локальный или наоборот? Последний раз редактировалось Gustav; 15.04.2010 в 13:30. |
|