之前我正在通过Microsoft.Jet.OLEDB.4.0读取位于文件系统上的excel文件,并且工作正常,但现在我的客户端告诉我将excel文件放入数据库表作为BLOB列并读取该文件从该列中通过直接操作该内存字符串来隐藏一个工作簿。
请帮我解决这个问题?
答案 0 :(得分:1)
使用BLOB内容创建一个temp,并在完成后替换BLOB。
string fileName = Path.GetTempFileName();
using (var stream = File.OpenWrite(fileName))
stream.Write(blobContents);
// open excel with oledb
// and do your processing
using (var stream = File.OpenRead(fileName))
{
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, stream.Length);
//save blob
}