![]() |
#7 |
Участник
|
Если нет кода нужного Вам, перекрываете на форме метод task(), добавляете точку останова, и ловите TaskID
X++: #define.taskCopy(771) #define.taskSelectAll(778) X++: public void insertText(BookMark _bookMark, TextBuffer _text, int _workSheet = 1) { COM XLSWorkSheet, XLSrange; TextBuffer tempBuffer; // To store clipboard contents int nextI, maxI = 3; ; // Если содержимое TextBuffer вообще не введено, то PastSpecial даст ошибку, // а если заведена пустая строка, то нет смысла делать PastSpecial if (! _text.size()) { return; } // 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(); for (nextI = 1; nextI <= maxI; nextI++) { try { // 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(0); // Restoring clipboard contents tempBuffer.toClipboard(); // В случае успеха, прерываю цикл break; } catch(Exception::Error) { // в случае ошибки удаляю последнюю строку infolog, // которая генерится автоматически ошибкой COM if (infolog.line()) { infolog.clear(infolog.line()-1); } // предпринимаю очередную попытку сделать вставку через буфер } } // for (nextI) // Если выход из цикла for произошел "штатно", то значение счетчика будет больше максимально допустимого значения if (nextI > maxI) { throw error("Ошибка при копировании данных через буфер обмена."); } } X++: public void pasteSpecialFromTextBuffer(BookMark _bookMark, TextBuffer _buffer, int _workSheet = 1) { COM XLSWorkSheet, XLSrange; ; if (! _buffer.size()) return; if (! m_comDocument) throw error(strfmt("@GEE6401", this.getApplicationName())); XLSWorkSheet = this.getWorkSheet(_workSheet); if (!XLSWorkSheet) throw error("@DIS6043"); XLSrange = this.findRange(_bookMark,_workSheet); if (!XLSrange) throw error("@SYS27391"); XLSrange.select(); _buffer.toClipboard(); XLSrange.pasteSpecial(0); } |
|
Теги |
excel, grid, выгрузить данные |
|
|