| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		AndReW_Samara
 
  
  Joined: 13 Feb 2002 Posts: 86 Location: Колуж Андрей Валериевич Occupation: Гелиос-7 (начальник отдела автоматизации) Interests: Самара
  | 
		
			
				 Posted: 17 Jun 2005 10:47    Post subject: Программирование на Harbour | 
				     | 
			 
			
				
  | 
			 
			
				Господа программисты! Help!!!
 
 
На Harbour-e пишу отчеты в Excel для БЭСТ-4+. В целом вроде проблем особых нет, но столкнулся с одним неприятным моментом. 
 
 
Как определить буквенный индекс колонки листа Excel программно? Это особенно актуально для многоколоночных отчетов с переменным числом колонок. Вручную забивать список соответствия числа букве как-то не особо хочется. Ведь колонок может быть более сотни!
 
 
Пробовал изменить стиль ссылок на R1C1, на листе поменялось, а Harbour все равно понимает только формат A1. Может, и Harbour'у нужно это где-то прописать? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Титов Александр
 
 
  Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
  | 
		
			
				 Posted: 17 Jun 2005 11:35    Post subject: Re: Программирование на Harbour | 
				     | 
			 
			
				
  | 
			 
			
				 	  | AndReW_Samara wrote: | 	 		  Господа программисты! Help!!!
 
 
На Harbour-e пишу отчеты в Excel для БЭСТ-4+. В целом вроде проблем особых нет, но столкнулся с одним неприятным моментом. 
 
 
Как определить буквенный индекс колонки листа Excel программно? Это особенно актуально для многоколоночных отчетов с переменным числом колонок. Вручную забивать список соответствия числа букве как-то не особо хочется. Ведь колонок может быть более сотни!
 
 
Пробовал изменить стиль ссылок на R1C1, на листе поменялось, а Harbour все равно понимает только формат A1. Может, и Harbour'у нужно это где-то прописать? | 	  
 
Добрый день!
 
Если я правильно понял, то можно вот так, например, это работает:
 
STATIC FUNCTION GetMyCol(nCol)
 
IF nCol<=26
 
   RETURN CHR(ASC("A")+nCol-1)
 
ELSEIF nCol>26*8
 
   RETURN "H"+CHR(ASC("A")+nCol-26*8-1)
 
ELSEIF nCol>26*7
 
   RETURN "G"+CHR(ASC("A")+nCol-26*7-1)
 
ELSEIF nCol>26*6
 
   RETURN "F"+CHR(ASC("A")+nCol-26*6-1)
 
ELSEIF nCol>26*5
 
   RETURN "E"+CHR(ASC("A")+nCol-26*5-1)
 
ELSEIF nCol>26*4
 
   RETURN "D"+CHR(ASC("A")+nCol-26*4-1)
 
ELSEIF nCol>26*3
 
   RETURN "C"+CHR(ASC("A")+nCol-26*3-1)
 
ELSEIF nCol>26*2
 
   RETURN "B"+CHR(ASC("A")+nCol-26*2-1)
 
ELSEIF nCol>26
 
   RETURN "A"+CHR(ASC("A")+nCol-26-1)
 
ENDIF
 
RETURN CHR(ASC("A")+nCol-1)
 
 
А если использовать объект Cells, то буквенного индекса и не требуется. _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		AndReW_Samara
 
  
  Joined: 13 Feb 2002 Posts: 86 Location: Колуж Андрей Валериевич Occupation: Гелиос-7 (начальник отдела автоматизации) Interests: Самара
  | 
		
			
				 Posted: 17 Jun 2005 11:52    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Спасибо. Все получилось. Я уже и сам начал было писать что-то подобное, но вы меня опередили    | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |