| 
			
			 | 
		#21 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Gustav
			 
 
			Запишите макрос в Excel, т.е. в пустом Экселе включите запись макро, далее откройте свой файл, сохраните его как xls, закройте файл, выключите запись макро. Получившийся код VBA несите сюда - я помогу его оформить на X++. 
		
	Импорт при помощи ADO работает с СОХРАНЕННЫМ файлом на диске! (этот файл как бы БД для него). К тому же, для несохраненного файла вы не сможете указать параметры строки подключения. Поэтому сохранение обязательно при использовании класса gl00mie. Но сомневаюсь, что макрос должен показать как он преобразует файл в удобочитаемый вид для Excel. Собственно вот и макрос. Просто открытие: Sub Test() ' ' Test Макрос ' ' ChDir "C:\" Workbooks.Open Filename:="C:\reportSmall.xls" End Sub Открытие с сохранением: Sub TestFull() ' ' TestFull Ìàêðîñ ' ' ChDir "C:\" Workbooks.Open Filename:="C:\reportSmall.xls" ActiveWorkbook.SaveAs Filename:="C:\reportSmall.xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False End Sub Последний раз редактировалось GBH; 27.07.2011 в 12:58.  | 
| 
	
 | 
| 
			
			 | 
		#22 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE). 
		
		
		
		
		
		
		
	X++: {
    COM xlApplication;
    COM xlWorkbooks, xlWorkbook;
    ;
    xlApplication = new COM('Excel.Application');
    xlWorkbooks = xlApplication.Workbooks();
    xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls');
    xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56);  // 56 = xlExcel8
    xlWorkbook.Close(false);
} | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: GBH (1). | |
| 
			
			 | 
		#23 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Gustav
			 
 
			Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE). 
		
	X++: {
    COM xlApplication;
    COM xlWorkbooks, xlWorkbook;
    ;
    xlApplication = new COM('Excel.Application');
    xlWorkbooks = xlApplication.Workbooks();
    xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls');
    xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56);  // 56 = xlExcel8
    xlWorkbook.Close(false);
}Насчёт Jet не опечатка?  | 
| 
	
 | 
| 
			
			 | 
		#24 | 
| 
			
			 Moderator 
		
			
	 | 
	
	|
| 
	
 |