Я нашел ответ на это. Это было довольно просто.
Я использую компонент средства просмотра отчетов, и я генерирую двоичный поток данных, который я сохраню в поле базы данных SQL либо в виде BLOB, либо в varbinary (еще нужно немного проверить это). Вот пример источника:
Dim warnings As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim bytes As Byte()
'This reads the report as a binary stream of data, could be Excel, PDF, etc
bytes = ExportReportViewer.ServerReport.Render("Excel", _
Nothing, mimeType, _
encoding, extension, streamids, warnings)