Que linguagens de programação posso usar para programar excel?
Como Vladislav Zorov já mencionado, você pode usar qualquer linguagem que suporte COM, já que o Excel se expõe como um objeto COM.
Aqui vou usar VBScript para demontrar algumas das técnicas que você'vai precisar, mas qualquer linguagem que possa fazer interface com COM pode ser usada. As propriedades e métodos do objeto são os mesmos que podem ser encontrados na Ajuda do editor VBA no modelo de objeto Excel (mas as constantes não estão disponíveis!).
Get the Excel COM instance:
- set oXL = CreateObject("Excel.Application")
- if oXL is nothing then wscript.quit 1 ' FATAL: Excel can not be started
Open a workbook file:
- oXL.Workbooks.Open "c:\path_to_file\file.xlsx"
Select the first sheet (the sheet collection is 1-based):
- set oWS = oXL.Worksheets(1)
You can also pass the sheet's name: oXL.Worksheets("Second data sheet")
Get a value from a cell at (row, column) in sheet 1 (returns a variant):
- sValue = oWS.Cells(iRow,iCol).Value
Of course, you can reverse the assignment to change a cell's value.
The assignment can also be used to change a cell's font, color, background color etc.
Shutting down Excel after you're done (otherwise the application will remain running in memory, and you'll end up with multiple excel.exe's in the Task Manager):
- oXL.DisplayAlerts = false ' prevent pop-up dialog
- oXL.Quit
The tricky bits are not so much with the retrieval/manipulation of the Excel objects, but:
- The Date cell's format is dependent on the workbook's locale (which can be inherited from the system). Se você tiver planilhas de fontes não controladas, você's receberá dd-mm-yyy, dd/mm/yyyyy, http://dd.mm.yyyy ou mm/dd/yyyyy: Coisas desagradáveis.
- O separador de parâmetros nas funções das células do Excel depende do locale (Aqui na Holanda com um Excel inglês, it's um ponto-e-vírgula (;), mas eu já vi pastas de trabalho que usam uma vírgula (,). Carregando uma planilha converte estas, mas se você atribuir funções a uma célula de um programa it's um issue.
- Determinar a última linha ou coluna que está em uso pode ser um pain, as planilhas don't especificar sua dimensão de forma confiável (se muitas linhas foram deletadas, pressionando Control-End também irá localizá-lo caminho após a última linha com os dados). Normalmente uso um loop para encontrar uma determinada célula vazia ou um indicador.
- li>Due ao fato da função Cells() funcionar com índices numéricos de linha/coluna, normalmente é melhor mudar da indicação de célula "A1" para a indicação de célula "R1C1" (nas opções do Excel). Você pode usar o objeto Range, mas se você precisar fazer loop através dos dados, um indicador numérico de linha e coluna funciona melhor.
Nota:
Se você quiser apenas extrair campos da planilha:
O driver da base de dados ADO também tem a possibilidade de abrir arquivos xls(x) simples. Mais informações sobre como usar o ADO para consultar uma planilha do Excel (também em VBScript, mas você pode usar qualquer linguagem que suporte ADO). Eu tenho'não tive muito sucesso com isto.
Artigos semelhantes
- Que linguagens de programação posso usar para criar um aplicativo como o Uber?
- Que linguagens de programação devo aprender para desenhar aplicações Google play?
- Que linguagens de programação podem ser usadas para criar uma VPN?
- Que linguagens de programação é mais adequada para uma aplicação de chat de vídeo móvel?