Questo tutorial dovrebbe funzionare per qualsiasi file, non solo per Excel. La chiave è in questa parte:
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs); //reads the binary files
Byte[] bytes = br.ReadBytes((Int32)fs.Length); //counting the file length into bytes
query = "insert into Excelfiledemo(Name,type,data)" + " values (@Name, @type, @Data)"; //insert query
com = new SqlCommand(query, con);
com.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename1;
com.Parameters.Add("@type", SqlDbType.VarChar).Value = type;
com.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes;
com.ExecuteNonQuery();
Label2.ForeColor = System.Drawing.Color.Green;
Label2.Text = "File Uploaded Successfully";
Ciò che sta accadendo fondamentalmente qui è che il flusso di file viene trasformato in un array di byte che viene archiviato come un blob di dati nel database. Questo può essere utilizzato per QUALSIASI tipo di file. Assicurati solo di mantenere il nome del file (o almeno l'estensione) proprio come nell'esempio sopra in modo da sapere che tipo di file è quando lo trasformi di nuovo in un file su disco.