Well if you don't want to hard-code values, you probably need to read them from a file. You can try reading that Excel file using [url=]HSSF[/url] from
Apache POI. Or maybe you can use Excel to export the data as a CSV file, which in turn can be easily parsed using an existing library like
one from Steve Ostermiller - or see the alternatives he lists.
Once you know how many bytes are in each column, you can read the main data file in a variety of ways. I would probably use a RandomAccessFile and use readFully() to fill a byte[] array of size 1800 (or whatever length you can determine from the Excel file). Then each part of that array can be interpreted as you wish. For example, if bytes 10-29 represent a person's name (as text), you can do somethign like
String name = new String(byteArray, 10, 30);
Or perhaps, if it's not a text file, you might benefit from methods like readInt() or others - it's hard to say without knowing more about the format.
Note that if each record is 1800 bytes, but the records are also separated by newlines, it may be important to learn whether the newline is part of the 1800 bytes, or not.
Since records are separated by newlines, you may want to use a BufferedReader's readLine() method. Or use a Scanner and nextLine(). However this is only a good idea if the file is all text, and only if the file encoding is known, and the encoding is a single-byte encoding. (Such as ISO-8859-1 or Cp-1252, rather than UTF-8.) Since your initial description focuses on bytes, I suspect it's better to avoid a Reader and instead read bytes with a RandomAccessFile.