I am not sure why you would have used VARBINARY(MAX) rather than a blob field, but the answer is to stream the TextStream to a file and launch Excel giving it the file path. You can use the current user's temp directory - make sure you generate unique file names or use a GUID.