My edited command string is correct. However to get rid of the new error, I had to take out "IMEX = 1" in the connection string. Not 100% sure why this makes it work, but it does.
One thing I've noticed while looking up things about using oledb commands is that many, like me, seem to be confused with what each part of the command is really doing. I still don't fully understand some of the special things you can add to it like "WHERE", but I'd like to add a bit here to help anyone who finds this question and is having similar problems.
In a SELECT statement, if you wanted to select a single cell, you could use something like this:
string commandString = String.Format("SELECT * FROM [{0}${1}{2}:{1}{2}]", worksheetName, column, row);
"SELECT * FROM" will select everything from "worksheetName". You then have to follow the name of your worksheet with "$". Next, "{1}{2}:{1}{2}" is the range of cells which you are selecting. Here, by making the column and row on both sides of the colon the same, you are selecting a range of a single cell. For example, "E3:E3" would select only what is in cell E3.
In an UPDATE statement, if you wanted to update a single cell, you could use something like:
string commandString = String.Format("UPDATE [{0}${1}{2}:{1}{2}] SET F1='{3}'",worksheetName, column, row, data);
The only difference to note here is the "SET F1='{3}'". This will set the cell you specified in your range to what's in the data variable. Note the use of "F1". This is simply a default that is used when "HDR=NO" is specified in your connection string, in other words, there are no column headers or names. If you had column headers you would use that in place of F1. It is important to understand here that F1 does NOT correspond to cell F1 in any way.