27.11.2013, 08:31 | #1 |
Участник
|
Очередной импорт из Excel
Всем привет. Может уже было, решил поделиться, преобразование range из Excel в контейнер значений. Вставляем в класс ComExcelDocument_RU
X++: public Container getRangeValue(MSOfficeBookMark_RU _bookMark,int _workSheet = 1) { COM comWorkSheet, comCells, comRange, comRows,comCols, comItem; Container con, conRow; int startRow, endRow, startCol, endCol, rowCounter, colCounter; ; if (! m_comDocument) throw error(StrFmt("@DIS100401", this.getApplicationName())); comWorkSheet = this.getWorkSheet(_workSheet); comCells = comWorkSheet.cells(); comRange = this.findRange(_bookMark, _workSheet); comRows = comRange.Rows(); startRow = comRows.row(); endRow = startRow + comRows.count() - 1; comCols = comRange.columns(); startCol = comCols.column(); endCol = startCol + comCols.count() - 1; for(rowCounter = startRow; rowCounter <= endRow; rowCounter++) { conRow = conNull(); for(colCounter = startRow; colCounter <= endCol; colCounter++) { comItem = COM::createFromVariant(comCells.item(rowCounter, colCounter)); conRow += ComExcelDocument_RU::variant2Str(comItem.value()); } con = conpoke(con, conlen(con) + 1, conRow); } return con; } |
|
|
За это сообщение автора поблагодарили: S.Kuskov (3), NickMDAX (1). |