real time online push button based counting system
What's "best" depends on the factors that are important to you. The simplest is probably to use the flow control lines on a serial port to read the pushbuttons. An example is shown here for a single input. This is likely the cheapest solution.

Next simple is probably the Arduino since you are already familiar with it. It is trivial to read a number of switch inputs with Arduino. Then you will implement a communications protocol to transfer the data. Possibly send a packet every time a switch changes state.

And then there are multiple off the shelf systems that can do what you want. For some definitions of "best" they would work.

The problem of saving data to Excel is probably easiest done if saved as a .csv file. IF it must be done in native Excel format, I think it can be done from a .NET program as long as Excel is installed on the target system since you will need to link to the Office assemblies.

Edited to add that I was a bit curious about what was available in .NET and I just discovered the OpenXML SDK that will let you create Microsoft Office files. May be worth looking at.