从上载的Excel文件中获取数据,而不保存到文件系统

我需要允许此ASP.NET web应用程序的用户上载特定格式的Excel电子表格,用电子表格中的数据填充数组,并将数组绑定到Oracle存储过程以进行验证并插入数据库。我必须能够从Excel电子表格中读取数据,而不必将其保存到web服务器的硬盘。这是我不知道该怎么做的部分。下面是一个简单的代码示例

<%--ASP.NET声明性--%>
<asp:FileUpload ID=“FileUpload1”runat=“server”/>
<asp:Button ID=“Button1”runat=“server”Text=“Send File”OnClick=“Button1\u Click”/gt;
//C#代码隐藏
受保护的无效按钮1\u单击(对象发送者,事件参数e){
var postedFile=FileUpload1.postedFile;
//…读取内存中的文件并将其格式发送到存储过程。。。
}

有人能帮我吗?我感谢任何人的关心

thx,
盖布

我在Codeplex上找到了一个很棒的轻量级开源API,名为ExcelDataReader

它可以将excel文件的输入流转换为System.Data.DataSet对象(可能使用BIFF规范进行解析)

以下是链接:

http://www.codeplex.com/ExcelDataReader

下面是一个代码示例:

<%--ASP.NET声明性--%>
<asp:FileUpload ID=“FileUpload1”runat=“server”/>
<asp:Button ID=“Button1”runat=“server”Text=“Send File”OnClick=“Button1\u Click”/gt;
<asp:GridView ID=“GridView1”runat=“server”/>
//C#代码隐藏
受保护的无效按钮1\u单击(对象发送者,事件参数e){
//ExcelDataReader接受System.IO.Stream对象
var excelReader=新的ExcelDataReader(FileUpload1.FileContent);
FileUpload1.FileContent.Close();
数据集wb=excelReader.WorkbookData;
//获取工作簿的第一个工作表
DataTable dt=excelReader.WorkbookData.Tables[0];
GridView1.DataSource=dt.AsDataView();
GridView1.DataBind();
}

发表评论