QNA > Q > Quali Linguaggi Di Programmazione Posso Usare Per Programmare Excel?

Quali linguaggi di programmazione posso usare per programmare Excel?

Come ha già detto Vladislav Zorov, puoi usare qualsiasi linguaggio che supporti COM, dato che Excel si espone come un oggetto COM.

Qui userò VBScript per dimostrare alcune delle tecniche che ti serviranno, ma si può usare qualsiasi linguaggio che possa interfacciarsi con COM. Le proprietà e i metodi dell'oggetto sono gli stessi che si possono trovare nella Guida nell'editor VBA sul modello dell'oggetto Excel (ma le costanti non sono disponibili!).

Get the Excel COM instance:

  1. set oXL = CreateObject("Excel.Application") 
  2. if oXL is nothing then wscript.quit 1 ' FATAL: Excel can not be started 

Open a workbook file:

  1. oXL.Workbooks.Open "c:\path_to_file\file.xlsx" 

Select the first sheet (the sheet collection is 1-based):

  1. 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):

  1. 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):

  1. oXL.DisplayAlerts = false ' prevent pop-up dialog 
  2. 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 hai fogli da fonti non controllate, otterrai dd-mm-yy, dd/mm/yyyy, http://dd.mm.yyyy o mm/dd/yyyy: Roba brutta.
  • Il separatore di parametri nelle funzioni di cella di Excel dipende dal locale (qui in Olanda con un Excel inglese, è un punto e virgola (;), ma ho visto cartelle di lavoro che usano una virgola (,). Il caricamento di un foglio di calcolo li converte, ma se si assegnano funzioni a una cella in un programma è un problema.
  • Determinare l'ultima riga o colonna che è in uso può essere un dolore, i fogli non specificano la loro dimensione in modo affidabile (se molte righe sono state cancellate, premendo Control-End si troverà anche molto dopo l'ultima riga con dati). Di solito uso un ciclo per trovare una certa cella vuota o un indicatore.
  • A causa del fatto che la funzione Cells() lavora con indici numerici riga/colonna, di solito è meglio passare dall'indicazione della cella "A1" a quella "R1C1" (nelle opzioni di Excel). Puoi usare l'oggetto Range, ma se hai bisogno di fare un ciclo attraverso i dati, un indicatore numerico di riga e colonna funziona meglio.

Nota:

Se vuoi solo estrarre campi dal foglio di calcolo:
Il driver del database ADO ha anche la possibilità di aprire semplici file xls(x). Maggiori informazioni su Using ADO to Query an Excel Spreadsheet (anche in VBScript, ma potete usare qualsiasi linguaggio che supporti ADO). Non ho avuto molto successo con questo.

Di Jarlen

Quali sono alcune applicazioni Android per un utente di bubble shooter? :: Perché gli iPhone sono così costosi rispetto ai Samsung, ma hanno specifiche peggiori?
Link utili