| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			  Застрял на элементарной задаче: есть какой-либо xls-файл, надо в переменную str прочитать его ячейку, ну, например, "A1". В ComExcelDocument_RU такого метода нету (get...). Может кто подскажет метод?! Через COM делать неохото. Возможно это уже обсуждалось, но я не смог найти...  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: str strValue(int _row, int _col) { COM c = this.cell(_row, _col); COMVariant cv = c.value(); switch (cv.variantType()) { case COMVariantType::VT_BSTR: return cv.bStr(); case COMVariantType::VT_R8: return num2str(cv.double(),-1,0,0,0); } return ''; }  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: COM cell(int _row, int _col) { int ii; COM cellValue; ; cellValue = worksheet.cells(); ii = 0; SysCOM::variant2COM(cellValue, cellValue.item(_row, _col)); return cellValue; }  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 SAP 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот ссылка котороя помогла мне в этом разобратся. 
		
		
		
		
		
		
		
	Axapta программирует Excel на VBA  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Gustav (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Zeratul
			
			 
... 
		
	Через COM делать неохото. ... 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от abv2703
			
			 
COM cell(int _row, int _col) 
		
	{ int ii; COM cellValue; ; cellValue = worksheet.cells(); ii = 0; SysCOM::variant2COM(cellValue, cellValue.item(_row, _col)); return cellValue; }  
		 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: public class ReadFromExcelFile { COM worksheet; } void loadFromFile(Filename _fileName) { ComExcelDocument_RU exl = new ComExcelDocument_RU(); ; if (! exl.open(_fileName)) throw error('?????? ??? ???????? ????? ' + _fileName); exl.visible(false); worksheet = exl.getWorkSheet(1); }  
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно через ODBC. 
		
		
		
		
		
		
		
	Объясните начинающему как загрузить данные из Excel? Смотрел форум, но не нашел. Я выкладывал подробный пример. С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			а еще можно через CSV и класс CommaIO
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Тоже работает, месяц назад думал над этим
			 X++: fileName = fileNameControl.text();
        fileNameControl.text(fileNameTrim(fileName));
        excel = new COM('Excel.Application');
        wbs = excel.workbooks();
        wb = wbs.open(fileName);
        wss = wb.WorkSheets();
        ws  = wss.Item("Акт");
        while(cycleFlag == "zyclus")
        {
    //cell A
            r               = ws.range("A"+int2str(counter1));
            temp            = r.value2();
            if(temp.toString() != "VT_EMPTY")
                numPos      = temp.double();
            else
            {
                cycleFlag   = "nicht zyclus";
                break;
            }
        } | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			лучше и быстрее чем через одбс не получится. 
		
		
		
		
		
		
		
	через ком бывают проблемы(последний раз наблюдалось в 2.5, потом не смотрел) вываливается через определенное кол-во загруженных строк - но позволяет выбрать файл  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну, "до кучи". Импорт из EXCEL через буфер обмена 
		
		
		
		
		
		
		
	PHP код: 
	
			
	Недостатки - буфер обмена возвращает данные только в символьном виде. Переводить в нужный тип данных придется вручную  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: konopello (1). | |
| 
	
	 | 
	
		
  |