18.04.2004, 16:01 | #1 |
Участник
|
Чтение ИЗ Excel (а не запись в него)
Тут неоднократно обсуждалась запись из X++ в Excel, был такой пример рабочего кода
ExApp = new COM("Excel.Application"); ExApp.Visible(True); Wbs = ExApp.Workbooks(); Wb = Wbs.Open("C:\MyFile.xls"); Wss = Wb.WorkSheets(); Ws = Wss.Item("MyWorkSheet"); ... Rng = Ws.Range(CurCel); Rng.Value2(currow); (кстати, здесь DisplayAlerts хорошо бы поставить) а как, наоборот, прочитать значение, записано в ячейке, например A1? info(Rng.Value2()); или info(Rng.Value()); ничего не выдают можно как-нибудь доступиться через Excel.Workbooks(i).Cells ? |
|
18.04.2004, 16:30 | #2 |
Учаснег
|
Rng.Value() и Rng.Value2() - возвращают значение в ячейке. Только их надо присвоить переменной типа COMVariant. А потом уже у этой переменной проверить тип и, в зависимости от него (текст, число...) - присвоить переменной нужного типа свойствами double(), bstr() и т.д...
PHP код:
__________________
Strictly IMHO & nothing personal |
|
18.04.2004, 17:01 | #3 |
Участник
|
сенькс
а можно как-нибудь через Cells, а не Range? ActiveWorksheet.Cells(i,j) |
|
18.04.2004, 19:36 | #4 |
Учаснег
|
Ээээ.... не пробовал... Хотя интересно было бы!
Я бы попытался присвоить Range все той же переменной COMVARIANT, а потом бы посмотрел в отладчике, какие у нее методы и свойства... Кстати, а какая у вас версия Аксапты? Если 3.0, то там вроде есть спецклассы для чтения/записи из/в Excel. В 2.5 к сожалению таковых нету
__________________
Strictly IMHO & nothing personal |
|
19.04.2004, 07:15 | #5 |
Участник
|
в 2.5 тоже есть класс, SysExcelImport кажется, но я стал сам делать
через Cells уже сделал Sheet = Sheets.item(1); // получил worksheet Cells = Sheet.Cells();// это переменная COM Cell = COM::createFromVariant(Cells.item(x, y));// тоже COM value = Cell.value(); |
|
29.06.2004, 17:12 | #6 |
Участник
|
а у кого-нибудь при чтении i,jтой ячейки вылетало "метод вызван с неправильным числом параметров"?
Cells.item(i,j), метод item класса Com |
|
29.06.2004, 17:24 | #7 |
Участник
|
Так. стало очень интересно!
Ткже было в 1С http://www.axforum.info/forums/showt...&threadid=5054 с тех пор так и не смог побороть эту проблему. Хотя точно помню, что было время, когда работало нормально. Здесь тоже самое? Может здесь получиться разобраться в чем причина? |
|
01.07.2004, 14:49 | #8 |
Участник
|
Цитата:
Изначально опубликовано mazzy
Так. стало очень интересно! Ткже было в 1С http://www.axforum.info/forums/showt...&threadid=5054 параметра типа VT_VARIANT по ссылке, эта ошибка в 7.7 недавно исправлена, но исправленный релиз ещё не вышел. То есть, в случае с 1С виновато именно 1С. А вот Excel - это что-то новое. |
|
03.07.2004, 10:45 | #9 |
Участник
|
такое ощущение, что глюк именно во взаимодействии Аксапты с COM объектами
как устранить, непонятно Axapta 2.5 SP3 Rus |
|
03.07.2004, 13:17 | #10 |
Роман Долгополов (RDOL)
|
-
|
|
04.07.2004, 11:50 | #11 |
Участник
|
Цитата:
Изначально опубликовано rinugun
параметра типа VT_VARIANT по ссылке, эта ошибка в 7.7 недавно исправлена, но исправленный релиз ещё не вышел. |
|