What is the extent of Excel programming capabilities?
Excel programming can be looked at from 4 different ways:
- Code written directly in Excel environment (commonly called macros)
- Code written from other tools to access Excel files via its object model
- Code written from other tools to access Excel file via an object model similar to Excel but does not require Excel on the run machine
- Code written from other tools to access Excel data as CSV files
All of the above are desktop solutions that are capable of manipulating information in files. Solutions using the approach in 1,2,3 can also manipulate graphs inside Excel files and run Excel functions and hence extending the source language functionality if so is desired. As for the code written in Excel environment, it is a large subset of VB6 and it could read/write data files, and access databases and use COM objects as well as manipulate sheets. You could also use it for GUI development but it lacks several important controls such as DataGrid. You could add such components as COM components if you like.
Visual Studio Tools for Office (VSTO) is a set of tools for the C# and VB.NET developer. It primarily aids in extending the user interface of Office 2003, 2007 and 2010 applications. Using the VSTO templates the developer can create managed code COM Add-ins for many Office applications. For Word and Excel, VSTO also offers a managed code alternative to VBA in the form of document-level customization templates. For more information see this link:
VSTO Resources
How is it done (how does serious, complex programming looks like in terms of syntax, patterns, styles, etc)?
See the answer to the above question. Also, you can take a look at Excel Object Model and at VBA Programming
Does it pertains on a paradigm (say, funcional programming)?
This depends on the programming style you use. If you use a C#.NET programming language to manipulate Excel file, then you can use capabilities of C# OO. See this for example: Excel Office Automation
Does Excel Programmers exists?
Yes it does - Lots of organizations have 'macros' and soem developers are hired to write macros in Excel (Usually referred to as Desktop Automation Tools).
What is it mainly used for?
Excel is a very powerful tool. Organizations use it often in every day work without having to go to IT. Some IT departments (and web sites) send CSV files or Excel files to employees and let them work with the data directly for their reports. This may call for the need to create charts, add formulas to reports and manipulate files using merge and complex sorting and formatting operations. In many cases, you store your tabular data in Excel sheets instead of a database, after all, not many non-IT staff know how to do a left outer join. As a result, some automation is called for to do some of the previous tasks.
Two things to watch for when you are programming against Excel:
Excel Version.
Deployment may require MS Office Dlls that may not be installed (but can be obtained for free from Microsoft).