| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Попробовал использовать OWC.Spreadsheet для ускорения экспорта в Excel. Результат классный – ускорение в десятки раз!!! (с 5-6 часов до 15 минут) 
		
		
		
		
		
		
		
	А вот с импортом трабл!? Не могу загрузить файл типа .xls в этот компонент. Пробовал загрузить файл типа .txt с разделителями, но все значения одной строки валятся в ячейку первой колонки. Использовал код: …. Com excel = new COM("OWC.Spreadsheet"); excel.loadtext('f:\\...\\asd1.xls'); …. или: …. Com excel = new COM("OWC.Spreadsheet"); Com range; Com curSheet = new COM(); ; curSheet = excel.ActiveSheet(); range = curSheet.usedrange(); range.loadtext('f:\\...\\asd1.xls'); …. результат один - грузится несколько неудобочитаемых символов в ячейку A1 Может, кто знает решение? А то импорт из Excel 30 000 строк занимает несколько часов!?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Спасибо всем за активное участие  
		
		
		
		
		
		
		
	   Во всем разобрался сам, тему закрываю!  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот если бы вы, Storer, рассказали историю о том, что вы выяснили, народ был бы вам очень благодарен. А самое главное, в следующий раз за решением таких вопросов в следущий раз точно бы обратился к вам.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот моя история про Web компонент Офиса, ускоряющего экспорт-импорт в/из Excel в десятки раз.  
		
		
		
		
		
		
		
	..... COM curSheet; COM excel = new COM("OWC.Spreadsheet"); COM range; COM interior; ComVariant ret; Str valueCell; ; curSheet = excel.ActiveSheet(); // Пишем в ячейку: range = curSheet.range(‘A1’); range.value(‘Test-test-test’); // Играем с цветом: interior = range.interior(); interior.color(‘Green’); // перевод номера цвета в название – отдельная история. // Рамка, выравнивание, ширина колонки – аналогично  )// Экспорт в Excel: excel.export(_fileName, _visible); // _filename – думаю понятно, _visible – показывать рез-т в Excel-е или все сделать вслепую. // Загрузка в curSheet файла типа txt с разделителями типа tab: excel.LoadText(_fileName,num2char(9),false, '\\042' ); // Параметры: (File As String, [Delimiters As String], [ConsecutiveDelimAsOne As Boolean = False], [TextQualifier As String = "\042"]) – это описание из VBA // Читаем из ячейки: ret = range.text(); valueCell = ret.bStr(); ..... Кто хочет больше, копайте dll-ку MSOWC в папке с Офисом Загрузить другие типы файлов в этот ActivX теоретически можно, а вот практически сходу не получилось, а копаться не было времени…  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. Интересная история. 
		
		
		
		
		
		
		
	Значит проблема была в том, что вместо одного надо указать два обратных слэша в параметре '\\042'? Я правильно понимаю соль истории?  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			не совсем... я просто не знал всех параметров метода LoadText(...), теперь знаю  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Storer: 
// Экспорт в Excel: excel.export(_fileName, _visible); // _filename – думаю понятно, _visible – показывать рез-т в Excel-е или все сделать вслепую possible solutions? Можно просто тестовый примерчик рабочий выложить на всеобщее осмотрение? Спасибо  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Гость 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Действительно,   урок по ускорению excela   никому бы не помешал-))
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Кому интересно, тут ссылка с описанием работы с использованием компонент из MSOWC.DLL  
		
		
		
		
		
		
		
	http://www.ridder.kz/public/2000_11_offcom/index.htm  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ссылка хорошая, только в ней выгрузка данных из текстового файла в Эксель через SpreadSheet - тогда уж проще в xls сразу писать, как в текстовый файл. 
		
		
		
		
		
		
		
	А меня интересует маленький примерчик, как вывести одно значение в поле в Эксель. Начало есть. А вот соединение с Экселевским файлом - метод connect - нет.  
		 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В строке 
		
		
		
		
		
		
		
	Цитата: 
	
		
			excel.export(_fileName, _visible);
		
	 
curSheet.export(_fileName, _visible);  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо storer. 
		
		
		
		
		
		
		
	Только вот вопрос возник другой При вставке в ячейку формулы типа: PHP код: 
	
			
	Как нормально вставить формулу  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Надо вставить английскую версию формулы. Т.е. вместо СУММ написать SUM.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ВОТ ЭТО ДААА!! 
		
		
		
		
		
		
		
	Никогда бы не подумал. Просто Эксель то у меня русский. И другими способами выгрузки в эксель я вставлял как раз =СУММ(). А тут попробовал =SUM(), так он его сам понял и преобразовал в =СУММ() Чудеса. Спасибо большое всем. P.S. Только что обнаружил еще одну проблему. При вставке нескольких столбцов один за другим, возникает странного рода ошибка. Тестирую на ТМЦ. В первую колонку вставляю itemId во вторую ItemName Так вот, если не указан ItemName, к примеру, получается, что ItemId вставляется в объединенный столбец (1 и 2).. Как быть? Прочерки вставлять не хочется вместо пустых значений  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я думаю, что web-компонент SpreadSheet не русифицирован, поэтому не понимает по русски. При последующей загрузке результата в Excel(русский), он сам преобразует данные.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Провел я маленькое исследование на досуге - по скорости выгрузки в Excel. 
		
		
		
		
		
		
		
	1. Проверил выгрузку через буфер (сразу все данные в строку, и один раз вставка) 2. Обычный вывод через insertValue Эти два способа - через ComExcelDocument_RU 3. Вывод через OWC.SpreadSheet Выводил 1000 записей из InventTable - восемь столбиков. (различные типы - str, int, real, date, формулу(тоже строка  ))Вот результаты (у меня медленный компьютер) ![]() 1. 11 сек. 2. около 10 минут!!! 3. 24 сек. Так что 3 - очень даже хороший способ, учитывая, что это он в каждую ячейку выгружает, то есть метод ComExcelDocument::numToNameCell() сжирает огромную часть из этого времени. И есть возможность работать с интерьером, как и во втором способе. Так что очень рекомендую всем, кто еще не определился.  
		 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Гость 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А  как  насчет скороти выгрузки через DDE ? 
		
		
		
		
		
		
		
	в исследованиях не участвовало? -)))  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			нет, к сожалению...  
		
		
		
		
		
		
		
	![]() Azat, если сварганите примерчик, буду очень рад протестировать и его.  
		 | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Новый вопрос:: 
		
		
		
		
		
		
		
	А как при помощи этого компонента работать с шаблонами Эксель? (Возможно ли создавать файл, в который выгружаются данные, по шаблону?)  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Возможно загружать шаблон в OWC, там править (или туда выводить из кода), затем сохранять в файл. Единственное есть НО - шаблон должен быть в формате XML - т.е. для начала его нужно в Excel сохранить как XML. Возможно что-то при этом теряется, но по крайней мере форматирование - остается. Я не экспериментировал в плане формул - но все линии, шрифты - все остается
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| Теги | 
| spreadsheet | 
| 
	
	 | 
	
		
		
  |