You cannot read values without opening the Excel file at all. But you can read the values without having to open Excel.
If the file is saved in xml format, it will be easier. If not, the easiest way is to use Excel, but for this you need to use Office Automation. The hard way is to create an excel parser - quite difficult in the non-open xml excel format (pre Office 2003) - it's difficult, but still possible.
However, this cannot be read from an Excel spreadsheet without opening the file at all.
Here's a snippet of code that you could use to open a spreadsheet from VB.NET using Office Automation (it still opens the file, relies on Excel Automation libraries, but does not require opening Excel):
RENOUNCEMENT
The following code is not intended to be used as is, but just a sample that guides the reader to their own solution, which should be thoroughly tested.
' The code below requires you to add references to Office Interop assemblies
' into your VB.NET project (if you don't know how to do that search Google)
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Open("<YOUR EXCEL SPREADSHEET FILE HERE")
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
range = xlWorkSheet.UsedRange
For rCnt = 1 To range.Rows.Count
For cCnt = 1 To range.Columns.Count
Obj = CType(range.Cells(rCnt, cCnt), Excel.Range)
' Obj.value now contains the value in the cell..
Next
Next