|  25.03.2003, 17:52 | #1 | 
| Lean Six Sigma | Экспорт в Excel - поле формата "Дата" 
			
			Всем привет! Ситуация: программно создаю ExcelWorkbook, нахожу ячейку, далее Cell.value2( SystemDateGet()); Cell.numberFormat( " Далее мысль обрывается... Никто не сталкивался с форматированием даты? | 
|  | 
|  25.03.2003, 18:03 | #2 | 
| Модератор | 
			
			Гораздо лучше будет сначала форматировать ячейку, а потом ей значения присваивать. Это раз.  Два. В чем проблема? В строке формата? Мне "dd.mm.yy" больше всего нравится. | 
|  | 
|  25.03.2003, 18:08 | #3 | 
| Участник | 
			
			Для экспорта в Excel можно использовать класс ComExcelDocument_RU, который берет на себя выполнение простых операций с Excel
		 | 
|  | 
|  25.03.2003, 18:17 | #4 | 
| Lean Six Sigma | 
			
			дописываем: Cell.numberFormat("dd.mm.yy"); Cell.value2(SystemDateGet()); на выходе - "dd.mm.yy" вместо самой даты | 
|  | 
|  25.03.2003, 18:37 | #5 | 
| Lean Six Sigma | 
			
			to LTA: я его и использую. Интересуют две простые операции: 1. Назначение цвета фона для ячейки - Cell.Interior().color() - почему-то ячейки перекрашиваются в радикальный чёрный цвет 2. Форматирование даты - вылетает по ошибке. | 
|  | 
|  25.03.2003, 18:40 | #6 | 
| Модератор | 
			
			А зачем Value2? Все уже читали про SysExcelImport, но у меня очень долго жил в другом приложении код, который бегал по рекордсету и в зависимости т типа поля формировал NumberFormat и присваивал Value, и все как-то жило. Цитата: 
		
			на выходе - "dd.mm.yy" вместо самой даты
		
	 Sub test() ActiveCell.NumberFormat = "dd.mm.yy" ActiveCell.Value2 = Now ActiveCell(2, 1).Activate ActiveCell.NumberFormat = "dd.mm.yy" ActiveCell.Value = Now End Sub все работает | 
|  | 
|  25.03.2003, 18:59 | #7 | 
| Lean Six Sigma | 
			
			Ну-ну... В VBA мы все мастера - и copyFromRecordset сделаем и сводную таблицу сляпаем. Но при запуске Excel как сервер автоматизации выясняется, что не все методы выглядят так же, как и в VBA.   | 
|  | 
|  25.03.2003, 19:30 | #8 | 
| Модератор | 
			
			Ну-ну Цитата: 
		
			В VBA мы все мастера - и copyFromRecordset сделаем и сводную таблицу сляпаем
		
	  И copyFromRecordset - тоже ни разу  Что касается цвета COMCell = COMAppl.activecell(); COMInterior = COMCell.Interior(); COMInterior.Color(WINAPI::RGB2int(255,0,0)); Оно таки красное Что касается нелюбимого Вами VBA: если запустить MsgBox ActiveCell.NumberFormat MsgBox ActiveCell.NumberFormatLocal стоя на ячейке, в которой присваивание даты свалилось, видно, что NumberFormat забит слэшами, которых там быть не должно | 
|  | 
|  26.03.2003, 12:05 | #9 | 
| Lean Six Sigma | 
			
			За цвет спасибо! По поводу сабжа - пришлось сдаться: Cell.value2(strfmt(" %1",PLine.EXWDate)); | 
|  | 
|  26.03.2003, 17:06 | #10 | 
| Участник | 
			
			вместо Cell.numberFormat("dd.mm.yy") попробуй  Cell.numberFormatLocal("ДД.ММ.ГГ") | 
|  | 
|  26.03.2003, 19:14 | #11 | 
| Lean Six Sigma | 
			
			Насчёт NumberFormatLocal - спасибо действительно работает. Непонятно, почему не работает NumberFormat. И вообще - может быть существует более производительный способ вывода данных в Excel, чем через аутомэйшен по ячейкам?
		 | 
|  | 
|  27.03.2003, 09:54 | #12 | 
| Участник | 
			
			Похоже это глюки в реализации com-сервера Еxcel, в Delphi всё аналогично. (хотя к VB это не относится). Более производительно передавать данные через вариантный массив в выбранный range. В Axapta не пробовал, а в Delphi выглядит примерно так: var ArrayData: Variant; ... ArrayData := VarArrayCreate([1, 10, 1,10]); // fill array for I := 1 to 10 do for J:= 1 to 10 do ArrayData[I,J]:= ... ; .... Range[ Cells.Item[1,1], Cells.Item[10,10] ].Value := ArrayData; | 
|  | 
|  27.03.2003, 11:40 | #13 | 
| Lean Six Sigma | 
			
			За массив опять спасибо. В аксапте тоже получилось: doc.findRange(strfmt("A%1:",Num) + COMExcelDocument_RU::numToNameCell(Arr.lastIndex(),Num)).value2( COMVariant::createFromArray(Arr)); Скорость вывода увеличилась в разы. | 
|  | 
|  24.04.2003, 13:40 | #14 | 
| Участник | 
			
			Если не трудно, нельзя ли отобразить весь код по вставки значений в Excel из массива (с описанием Num и Arr)
		 | 
|  | 
|  24.04.2003, 19:53 | #15 | 
| Участник | 
			
			А заодно подскажите, как узнать, какие свойства и методы (и какая сигнатура методов) есть у какого-либо Com - объекта
		 | 
|  | 
|  25.04.2003, 10:01 | #16 | 
| NavAx | 
			
			в tlb, exe, dll файлике подглядеть, type library editor'ом.
		 | 
|  | 
| Теги | 
| excel | 
|  | 
| 
 |