-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexcel.py
33 lines (27 loc) · 1.44 KB
/
excel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'''
Script referente a PARTE II do enunciado do Projecto 1 - UFCD10793
Faça um programa para traduzir as coordenadas "simbólicas" do Excel para coordenadas lineares.
Por exemplo, em Excel, internamente, a célula A1 corresponde à célula na linha 0 e coluna 0.
Projecto realizado por:
Adriana de Souza Gama
Carlo Braga
'''
while True:
#Primeiro pedimos ao utilizador para nos indicar as coordenadas pretendidas
raw = input("Indique as coordenadas: ")
if raw.lower() == "sair": #Verifica se o utilizador quer continuar a usar o programa
break
dados = raw.split()
colunaTemp = dados[0] #Primeiro a coluna é carregada (como letras)
coluna = 0
linha = int(dados[1]) - 1 #Os números das linhas começam no 0
def converter(char): #Para facilitar o código, podemos definir uma função para converter letras em números
letras = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
for i in range(len(letras)):
if char.lower() == letras[i]:
return i + 1 #O indice da letra vai ser igual à sua posição no alfabeto (a = 1, b = 2, c = 3, ...)
for i in range(len(colunaTemp)):
coluna += converter(colunaTemp[-i - 1]) * 26 ** i #O número é convertido da base 26 para a base 10 segundo esta fórmula
coluna -= 1 #Os números das colunas começam no 0
print("Linha:", linha, "Coluna:", coluna,"\n-------") #O resultado é apresentado
print("fim do programa")